Loading AndroidManifest.xml +1 −1 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ android:backupAgent="com.android.launcher3.LauncherBackupAgentHelper" android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher_home" android:label="@string/application_name" android:label="@string/app_name" android:largeHeap="@bool/config_largeHeap" android:restoreAnyVersion="true" android:supportsRtl="true" > Loading res/values/strings.xml +4 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ <string name="receive_first_load_broadcast_permission" translatable="false">com.android.launcher3.permission.RECEIVE_FIRST_LOAD_BROADCAST</string> <!-- Application name --> <string name="application_name">Launcher3</string> <string name="app_name">Launcher3</string> <!-- Default folder name --> <string name="folder_name"></string> <!-- Work folder name --> Loading Loading @@ -103,6 +103,9 @@ <string name="permdesc_write_settings">Allows the app to change the settings and shortcuts in Home.</string> <!-- Toast shown on clicking a direct call shortcut. [CHAR_LIMIT=80] --> <string name="msg_no_phone_permission"><xliff:g id="app_name" example="Launcher3">%1$s</xliff:g> is not allowed to make phone calls</string> <!-- Widgets: --> <skip /> Loading src/com/android/launcher3/Launcher.java +37 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.launcher3; import android.Manifest; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; Loading Loading @@ -151,6 +152,8 @@ public class Launcher extends Activity private static final int REQUEST_BIND_APPWIDGET = 11; private static final int REQUEST_RECONFIGURE_APPWIDGET = 12; private static final int REQUEST_PERMISSION_CALL_PHONE = 13; private static final int WORKSPACE_BACKGROUND_GRADIENT = 0; private static final int WORKSPACE_BACKGROUND_TRANSPARENT = 1; private static final int WORKSPACE_BACKGROUND_BLACK = 2; Loading Loading @@ -821,6 +824,24 @@ public class Launcher extends Activity /** @Override for MNC */ public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { if (requestCode == REQUEST_PERMISSION_CALL_PHONE && sPendingAddItem != null && sPendingAddItem.requestCode == REQUEST_PERMISSION_CALL_PHONE) { View v = null; CellLayout layout = getCellLayout(sPendingAddItem.container, sPendingAddItem.screenId); if (layout != null) { v = layout.getChildAt(sPendingAddItem.cellX, sPendingAddItem.cellY); } Intent intent = sPendingAddItem.intent; sPendingAddItem = null; if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { startActivity(v, intent, null); } else { // TODO: Show a snack bar with link to settings Toast.makeText(this, getString(R.string.msg_no_phone_permission, getString(R.string.app_name)), Toast.LENGTH_SHORT).show(); } } if (mLauncherCallbacks != null) { mLauncherCallbacks.onRequestPermissionsResult(requestCode, permissions, grantResults); Loading Loading @@ -2943,6 +2964,22 @@ public class Launcher extends Activity } return true; } catch (SecurityException e) { if (Utilities.ATLEAST_MARSHMALLOW && tag instanceof ItemInfo) { // Due to legacy reasons, direct call shortcuts require Launchers to have the // corresponding permission. Show the appropriate permission prompt if that // is the case. if (intent.getComponent() == null && Intent.ACTION_CALL.equals(intent.getAction()) && checkSelfPermission(Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { // TODO: Rename sPendingAddItem to a generic name. sPendingAddItem = preparePendingAddArgs(REQUEST_PERMISSION_CALL_PHONE, intent, 0, (ItemInfo) tag); requestPermissions(new String[]{Manifest.permission.CALL_PHONE}, REQUEST_PERMISSION_CALL_PHONE); return false; } } Toast.makeText(this, R.string.activity_not_found, Toast.LENGTH_SHORT).show(); Log.e(TAG, "Launcher does not have the permission to launch " + intent + ". Make sure to create a MAIN intent-filter for the corresponding activity " + Loading Loading
AndroidManifest.xml +1 −1 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ android:backupAgent="com.android.launcher3.LauncherBackupAgentHelper" android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher_home" android:label="@string/application_name" android:label="@string/app_name" android:largeHeap="@bool/config_largeHeap" android:restoreAnyVersion="true" android:supportsRtl="true" > Loading
res/values/strings.xml +4 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ <string name="receive_first_load_broadcast_permission" translatable="false">com.android.launcher3.permission.RECEIVE_FIRST_LOAD_BROADCAST</string> <!-- Application name --> <string name="application_name">Launcher3</string> <string name="app_name">Launcher3</string> <!-- Default folder name --> <string name="folder_name"></string> <!-- Work folder name --> Loading Loading @@ -103,6 +103,9 @@ <string name="permdesc_write_settings">Allows the app to change the settings and shortcuts in Home.</string> <!-- Toast shown on clicking a direct call shortcut. [CHAR_LIMIT=80] --> <string name="msg_no_phone_permission"><xliff:g id="app_name" example="Launcher3">%1$s</xliff:g> is not allowed to make phone calls</string> <!-- Widgets: --> <skip /> Loading
src/com/android/launcher3/Launcher.java +37 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.launcher3; import android.Manifest; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; Loading Loading @@ -151,6 +152,8 @@ public class Launcher extends Activity private static final int REQUEST_BIND_APPWIDGET = 11; private static final int REQUEST_RECONFIGURE_APPWIDGET = 12; private static final int REQUEST_PERMISSION_CALL_PHONE = 13; private static final int WORKSPACE_BACKGROUND_GRADIENT = 0; private static final int WORKSPACE_BACKGROUND_TRANSPARENT = 1; private static final int WORKSPACE_BACKGROUND_BLACK = 2; Loading Loading @@ -821,6 +824,24 @@ public class Launcher extends Activity /** @Override for MNC */ public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { if (requestCode == REQUEST_PERMISSION_CALL_PHONE && sPendingAddItem != null && sPendingAddItem.requestCode == REQUEST_PERMISSION_CALL_PHONE) { View v = null; CellLayout layout = getCellLayout(sPendingAddItem.container, sPendingAddItem.screenId); if (layout != null) { v = layout.getChildAt(sPendingAddItem.cellX, sPendingAddItem.cellY); } Intent intent = sPendingAddItem.intent; sPendingAddItem = null; if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { startActivity(v, intent, null); } else { // TODO: Show a snack bar with link to settings Toast.makeText(this, getString(R.string.msg_no_phone_permission, getString(R.string.app_name)), Toast.LENGTH_SHORT).show(); } } if (mLauncherCallbacks != null) { mLauncherCallbacks.onRequestPermissionsResult(requestCode, permissions, grantResults); Loading Loading @@ -2943,6 +2964,22 @@ public class Launcher extends Activity } return true; } catch (SecurityException e) { if (Utilities.ATLEAST_MARSHMALLOW && tag instanceof ItemInfo) { // Due to legacy reasons, direct call shortcuts require Launchers to have the // corresponding permission. Show the appropriate permission prompt if that // is the case. if (intent.getComponent() == null && Intent.ACTION_CALL.equals(intent.getAction()) && checkSelfPermission(Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { // TODO: Rename sPendingAddItem to a generic name. sPendingAddItem = preparePendingAddArgs(REQUEST_PERMISSION_CALL_PHONE, intent, 0, (ItemInfo) tag); requestPermissions(new String[]{Manifest.permission.CALL_PHONE}, REQUEST_PERMISSION_CALL_PHONE); return false; } } Toast.makeText(this, R.string.activity_not_found, Toast.LENGTH_SHORT).show(); Log.e(TAG, "Launcher does not have the permission to launch " + intent + ". Make sure to create a MAIN intent-filter for the corresponding activity " + Loading