Loading tools/EditTextVariations/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package="com.android.inputmethod.tools.edittextvariations" android:versionName="0.67" android:versionCode="67"> <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <supports-screens android:resizeable="true"/> <uses-sdk android:targetSdkVersion="27" android:minSdkVersion="11"/> Loading tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/EditTextVariations.java +40 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.inputmethod.tools.edittextvariations; import android.Manifest; import android.annotation.SuppressLint; import android.app.Activity; import android.app.AlertDialog; Loading @@ -24,6 +25,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Build; import android.os.Bundle; Loading @@ -45,7 +47,9 @@ import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; Loading @@ -64,6 +68,7 @@ public final class EditTextVariations extends Activity implements TextView.OnEdi private static final String PREF_THEME = "theme"; private static final String PREF_NAVIGATE = "navigate"; private static final String PREF_SOFTINPUT = "softinput"; private static final int NOTIFICATION_PERMISSION_REQUEST_CODE = 0; private SharedPreferences prefs; private View[] fields; Loading Loading @@ -199,11 +204,35 @@ public final class EditTextVariations extends Activity implements TextView.OnEdi saveSoftInputMode(itemId == MENU_SOFTINPUT_VISIBLE); restartActivity(); } else if (itemId == MENU_DIRECT_REPLY) { final boolean needPermissionCheck = isNeedNotificationPermission() && checkSelfPermission(Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED; if (needPermissionCheck) { requestPermissions(new String[] { Manifest.permission.POST_NOTIFICATIONS }, NOTIFICATION_PERMISSION_REQUEST_CODE); } else { NotificationUtils.sendDirectReplyNotification(this); } } return true; } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { if (requestCode == NOTIFICATION_PERMISSION_REQUEST_CODE) { if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // Permission is granted. Continue to send the notification. NotificationUtils.sendDirectReplyNotification(this); } else { Log.d(TAG, "POST_NOTIFICATIONS Permissions denied."); Toast.makeText(this, "Required permission has denied", Toast.LENGTH_LONG).show(); } } } @Override public void onClick(final DialogInterface dialog, final int which) { saveTheme(ThemeItem.THEME_LIST.get(which)); Loading Loading @@ -476,4 +505,14 @@ public final class EditTextVariations extends Activity implements TextView.OnEdi } return text; } private static boolean isNeedNotificationPermission() { for(Field field : Manifest.permission.class.getFields()) { if (field.getName().equals("POST_NOTIFICATIONS")) { Log.d(TAG, "Need notification permission."); return true; } } return false; } } Loading
tools/EditTextVariations/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package="com.android.inputmethod.tools.edittextvariations" android:versionName="0.67" android:versionCode="67"> <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <supports-screens android:resizeable="true"/> <uses-sdk android:targetSdkVersion="27" android:minSdkVersion="11"/> Loading
tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/EditTextVariations.java +40 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.inputmethod.tools.edittextvariations; import android.Manifest; import android.annotation.SuppressLint; import android.app.Activity; import android.app.AlertDialog; Loading @@ -24,6 +25,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Build; import android.os.Bundle; Loading @@ -45,7 +47,9 @@ import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; Loading @@ -64,6 +68,7 @@ public final class EditTextVariations extends Activity implements TextView.OnEdi private static final String PREF_THEME = "theme"; private static final String PREF_NAVIGATE = "navigate"; private static final String PREF_SOFTINPUT = "softinput"; private static final int NOTIFICATION_PERMISSION_REQUEST_CODE = 0; private SharedPreferences prefs; private View[] fields; Loading Loading @@ -199,11 +204,35 @@ public final class EditTextVariations extends Activity implements TextView.OnEdi saveSoftInputMode(itemId == MENU_SOFTINPUT_VISIBLE); restartActivity(); } else if (itemId == MENU_DIRECT_REPLY) { final boolean needPermissionCheck = isNeedNotificationPermission() && checkSelfPermission(Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED; if (needPermissionCheck) { requestPermissions(new String[] { Manifest.permission.POST_NOTIFICATIONS }, NOTIFICATION_PERMISSION_REQUEST_CODE); } else { NotificationUtils.sendDirectReplyNotification(this); } } return true; } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { if (requestCode == NOTIFICATION_PERMISSION_REQUEST_CODE) { if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // Permission is granted. Continue to send the notification. NotificationUtils.sendDirectReplyNotification(this); } else { Log.d(TAG, "POST_NOTIFICATIONS Permissions denied."); Toast.makeText(this, "Required permission has denied", Toast.LENGTH_LONG).show(); } } } @Override public void onClick(final DialogInterface dialog, final int which) { saveTheme(ThemeItem.THEME_LIST.get(which)); Loading Loading @@ -476,4 +505,14 @@ public final class EditTextVariations extends Activity implements TextView.OnEdi } return text; } private static boolean isNeedNotificationPermission() { for(Field field : Manifest.permission.class.getFields()) { if (field.getName().equals("POST_NOTIFICATIONS")) { Log.d(TAG, "Need notification permission."); return true; } } return false; } }