-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
402fd8b
commit 7fcb842
Showing
12 changed files
with
326 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,75 @@ | ||
package com.example.test2; | ||
|
||
import androidx.appcompat.app.AppCompatActivity; | ||
import android.app.NotificationChannel; | ||
import android.app.NotificationManager; | ||
import android.os.Build; | ||
import android.os.Bundle; | ||
import android.util.Log; | ||
import android.view.View; | ||
import android.widget.Toast; | ||
import android.widget.Button; | ||
|
||
import androidx.annotation.NonNull; | ||
import androidx.appcompat.app.AppCompatActivity; | ||
|
||
import com.google.android.gms.tasks.OnCompleteListener; | ||
import com.google.android.gms.tasks.Task; | ||
import com.google.firebase.messaging.FirebaseMessaging; | ||
import com.example.test2.R; | ||
import com.google.android.gms.ads.MobileAds; | ||
import com.google.android.gms.ads.initialization.InitializationStatus; | ||
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener; | ||
import com.google.android.gms.ads.AdRequest; | ||
import com.google.android.gms.ads.AdView; | ||
|
||
import android.os.Bundle; | ||
|
||
public class MainActivity extends AppCompatActivity { | ||
|
||
private static final String TAG = "MainActivity"; | ||
private AdView mAdView; | ||
|
||
|
||
@Override | ||
protected void onCreate(Bundle savedInstanceState) { | ||
super.onCreate(savedInstanceState); | ||
setContentView(R.layout.activity_main); | ||
Button btn = (Button) findViewById(R.id.button2); | ||
|
||
btn.setOnClickListener(new View.OnClickListener() { | ||
@Override | ||
public void onClick(View v) { | ||
// Get token | ||
// [START log_reg_token] | ||
FirebaseMessaging.getInstance().getToken() | ||
.addOnCompleteListener(task -> { | ||
// Get new FCM registration token | ||
String token = task.getResult(); | ||
// Log and toast | ||
String msg = "You Pressed The Button!"; | ||
Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); | ||
}); | ||
// [END log_reg_token] | ||
} | ||
}); | ||
|
||
MobileAds.initialize(this, new OnInitializationCompleteListener() { | ||
@Override | ||
public void onInitializationComplete(InitializationStatus initializationStatus) { | ||
} | ||
}); | ||
|
||
mAdView = findViewById(R.id.adView); | ||
AdRequest adRequest = new AdRequest.Builder().build(); | ||
mAdView.loadAd(adRequest); | ||
|
||
|
||
} | ||
|
||
public void runtimeEnableAutoInit() { | ||
// [START fcm_runtime_enable_auto_init] | ||
FirebaseMessaging.getInstance().setAutoInitEnabled(true); | ||
// [END fcm_runtime_enable_auto_init] | ||
} | ||
} |
175 changes: 175 additions & 0 deletions
175
app/src/main/java/com/example/test2/MyFirebaseMessagingService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,175 @@ | ||
package com.example.test2; | ||
|
||
import com.google.firebase.messaging.FirebaseMessagingService; | ||
|
||
import android.app.NotificationChannel; | ||
import android.app.NotificationManager; | ||
import android.os.Build; | ||
import android.os.Bundle; | ||
import android.util.Log; | ||
import android.view.View; | ||
import android.widget.Toast; | ||
|
||
import androidx.annotation.NonNull; | ||
import androidx.appcompat.app.AppCompatActivity; | ||
|
||
import com.google.android.gms.tasks.OnCompleteListener; | ||
import com.google.android.gms.tasks.Task; | ||
import com.google.firebase.messaging.FirebaseMessaging; | ||
//import com.google.firebase.quickstart.fcm.R; | ||
//import com.google.firebase.quickstart.fcm.databinding.ActivityMainBinding; | ||
import android.app.NotificationChannel; | ||
import android.app.NotificationManager; | ||
import android.app.PendingIntent; | ||
import android.content.Context; | ||
import android.content.Intent; | ||
import android.media.RingtoneManager; | ||
import android.net.Uri; | ||
import android.os.Build; | ||
import androidx.core.app.NotificationCompat; | ||
import android.util.Log; | ||
|
||
import com.google.firebase.messaging.FirebaseMessagingService; | ||
import com.google.firebase.messaging.RemoteMessage; | ||
import androidx.work.OneTimeWorkRequest; | ||
import androidx.work.WorkManager; | ||
import com.example.test2.R; | ||
|
||
public class MyFirebaseMessagingService extends FirebaseMessagingService { | ||
private static final String TAG = "MyFirebaseMsgService"; | ||
|
||
/** | ||
* Called when message is received. | ||
* | ||
* @param remoteMessage Object representing the message received from Firebase Cloud Messaging. | ||
*/ | ||
// [START receive_message] | ||
@Override | ||
public void onMessageReceived(RemoteMessage remoteMessage) { | ||
// [START_EXCLUDE] | ||
// There are two types of messages data messages and notification messages. Data messages | ||
// are handled here in onMessageReceived whether the app is in the foreground or background. | ||
// Data messages are the type traditionally used with GCM. Notification messages are only | ||
// received here in onMessageReceived when the app is in the foreground. When the app is in | ||
// the background an automatically generated notification is displayed. When the user taps | ||
// on the notification they are returned to the app. Messages | ||
// containing both notification and data payloads are treated as notification messages. The | ||
// Firebase console always sends notification messages. For more see: | ||
// https://firebase.google.com/docs/cloud-messaging/concept-options | ||
// [END_EXCLUDE] | ||
|
||
// TODO(developer): Handle FCM messages here. | ||
// Not getting messages here? See why this may be: https://goo.gl/39bRNJ | ||
Log.d(TAG, "From: " + remoteMessage.getFrom()); | ||
|
||
// Check if message contains a data payload. | ||
if (remoteMessage.getData().size() > 0) { | ||
Log.d(TAG, "Message data payload: " + remoteMessage.getData()); | ||
|
||
if (/* Check if data needs to be processed by long running job */ true) { | ||
// For long-running tasks (10 seconds or more) use WorkManager. | ||
scheduleJob(); | ||
} else { | ||
// Handle message within 10 seconds | ||
handleNow(); | ||
} | ||
|
||
} | ||
|
||
// Check if message contains a notification payload. | ||
if (remoteMessage.getNotification() != null) { | ||
Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody()); | ||
} | ||
|
||
// Also if you intend on generating your own notifications as a result of a received FCM | ||
// message, here is where that should be initiated. See sendNotification method below. | ||
} | ||
// [END receive_message] | ||
|
||
|
||
// [START on_new_token] | ||
/** | ||
* There are two scenarios when onNewToken is called: | ||
* 1) When a new token is generated on initial app startup | ||
* 2) Whenever an existing token is changed | ||
* Under #2, there are three scenarios when the existing token is changed: | ||
* A) App is restored to a new device | ||
* B) User uninstalls/reinstalls the app | ||
* C) User clears app data | ||
*/ | ||
@Override | ||
public void onNewToken(String token) { | ||
Log.d(TAG, "Refreshed token: " + token); | ||
|
||
// If you want to send messages to this application instance or | ||
// manage this apps subscriptions on the server side, send the | ||
// FCM registration token to your app server. | ||
sendRegistrationToServer(token); | ||
} | ||
// [END on_new_token] | ||
|
||
/** | ||
* Schedule async work using WorkManager. | ||
*/ | ||
private void scheduleJob() { | ||
// [START dispatch_job] | ||
OneTimeWorkRequest work = new OneTimeWorkRequest.Builder(MyWorker.class).build(); | ||
WorkManager.getInstance().beginWith(work).enqueue(); | ||
// [END dispatch_job] | ||
} | ||
|
||
/** | ||
* Handle time allotted to BroadcastReceivers. | ||
*/ | ||
private void handleNow() { | ||
Log.d(TAG, "Short lived task is done."); | ||
} | ||
|
||
/** | ||
* Persist token to third-party servers. | ||
* | ||
* Modify this method to associate the user's FCM registration token with any | ||
* server-side account maintained by your application. | ||
* | ||
* @param token The new token. | ||
*/ | ||
private void sendRegistrationToServer(String token) { | ||
// TODO: Implement this method to send token to your app server. | ||
} | ||
|
||
/** | ||
* Create and show a simple notification containing the received FCM message. | ||
* | ||
* @param messageBody FCM message body received. | ||
*/ | ||
private void sendNotification(String messageBody) { | ||
Intent intent = new Intent(this, MainActivity.class); | ||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); | ||
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, | ||
PendingIntent.FLAG_ONE_SHOT); | ||
|
||
String channelId = "abc";//getString(R.string.default_notification_channel_id); | ||
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); | ||
NotificationCompat.Builder notificationBuilder = | ||
new NotificationCompat.Builder(this, channelId) | ||
//.setSmallIcon(R.drawable.ic_stat_ic_notification) | ||
//.setContentTitle(getString(R.string.fcm_message)) | ||
.setContentText(messageBody) | ||
.setAutoCancel(true) | ||
.setSound(defaultSoundUri) | ||
.setContentIntent(pendingIntent); | ||
|
||
NotificationManager notificationManager = | ||
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); | ||
|
||
// Since android Oreo notification channel is needed. | ||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { | ||
NotificationChannel channel = new NotificationChannel(channelId, | ||
"Channel human readable title", | ||
NotificationManager.IMPORTANCE_DEFAULT); | ||
notificationManager.createNotificationChannel(channel); | ||
} | ||
|
||
notificationManager.notify(0 /* ID of notification */, notificationBuilder.build()); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
package com.example.test2; | ||
|
||
import android.content.Context; | ||
import androidx.annotation.NonNull; | ||
import android.util.Log; | ||
|
||
import androidx.work.Worker; | ||
import androidx.work.WorkerParameters; | ||
|
||
public class MyWorker extends Worker { | ||
|
||
private static final String TAG = "MyWorker"; | ||
|
||
public MyWorker(@NonNull Context appContext, @NonNull WorkerParameters workerParams) { | ||
super(appContext, workerParams); | ||
} | ||
|
||
@NonNull | ||
@Override | ||
public Result doWork() { | ||
Log.d(TAG, "Performing long running task in scheduled job"); | ||
// TODO(developer): add long running task here. | ||
return Result.success(); | ||
} | ||
} |
File renamed without changes.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> | ||
<background android:drawable="@drawable/ic_launcher_background" /> | ||
<background android:drawable="@drawable/ic_stat_ic_notification" /> | ||
<foreground android:drawable="@drawable/ic_launcher_foreground" /> | ||
</adaptive-icon> |
Oops, something went wrong.