Merge "Use support lib shortcut manager in sample apps" into oc-dev

This commit is contained in:
TreeHugger Robot
2017-06-06 16:18:20 +00:00
committed by Android (Google) Code Review
7 changed files with 45 additions and 10 deletions

View File

@@ -23,6 +23,8 @@ include $(CLEAR_VARS)
LOCAL_PACKAGE_NAME := ShortcutDemo
LOCAL_STATIC_JAVA_LIBRARIES = android-support-v4
LOCAL_MODULE_TAGS := samples tests
LOCAL_AAPT_FLAGS += --rename-manifest-package com.example.android.pm.shortcutdemo
@@ -43,6 +45,8 @@ include $(CLEAR_VARS)
LOCAL_PACKAGE_NAME := ShortcutDemo2
LOCAL_STATIC_JAVA_LIBRARIES = android-support-v4
LOCAL_MODULE_TAGS := samples tests
LOCAL_AAPT_FLAGS += --rename-manifest-package com.example.android.pm.shortcutdemo2

View File

@@ -17,7 +17,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.pm.shortcutdemo">
<uses-sdk android:minSdkVersion="24" />
<uses-sdk android:minSdkVersion="25" android:targetSdkVersion="26" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

View File

@@ -31,6 +31,9 @@ import android.graphics.BitmapFactory;
import android.graphics.drawable.Icon;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.content.pm.ShortcutInfoCompat;
import android.support.v4.content.pm.ShortcutManagerCompat;
import android.support.v4.graphics.drawable.IconCompat;
import android.text.format.Time;
import android.util.ArrayMap;
import android.util.Log;
@@ -198,6 +201,21 @@ public class ShortcutPublisher extends Activity {
return b;
}
public static ShortcutInfoCompat.Builder addRandomIntents(Context context,
ShortcutInfoCompat.Builder b) {
final int i = sRandom.nextInt(sIntentList.size());
b.setShortLabel(sIntentList.get(i).first);
b.setIntent(new Intent(Intent.ACTION_VIEW, Uri.parse(sIntentList.get(i).second)));
if (sRandom.nextBoolean()) {
b.setIcon(IconCompat.createWithResource(context, R.drawable.icon2));
} else {
b.setIcon(IconCompat.createWithBitmap(
BitmapFactory.decodeResource(context.getResources(), R.drawable.icon_large_2)));
}
return b;
}
public void onPublishPressed(View view) {
dumpCurrentShortcuts();
final Icon icon2 = Icon.createWithBitmap(BitmapFactory.decodeResource(getResources(),
@@ -305,12 +323,12 @@ public class ShortcutPublisher extends Activity {
}
public static void requestPinShortcut(Context context) {
if (!context.getSystemService(ShortcutManager.class).isRequestPinShortcutSupported()) {
if (!ShortcutManagerCompat.isRequestPinShortcutSupported(context)) {
showToast(context, "requestPinShortcut() is not supported by launcher");
return;
}
final ShortcutInfo si = addRandomIntents(
context, new ShortcutInfo.Builder(context,
final ShortcutInfoCompat si = addRandomIntents(
context, new ShortcutInfoCompat.Builder(context,
"shortcut-" + System.currentTimeMillis()))
.build();
final PendingIntent resultIntent = PendingIntent.getBroadcast(context, 0,
@@ -318,7 +336,7 @@ public class ShortcutPublisher extends Activity {
PendingIntent.FLAG_UPDATE_CURRENT);
ShortcutPublisher.callApi(context, () -> {
context.getSystemService(ShortcutManager.class).requestPinShortcut(
ShortcutManagerCompat.requestPinShortcut(context,
si, resultIntent.getIntentSender());
return true;
});

View File

@@ -28,6 +28,8 @@ LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
LOCAL_STATIC_JAVA_LIBRARIES = android-support-v4
LOCAL_SDK_VERSION := current
include $(BUILD_PACKAGE)

View File

@@ -17,7 +17,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.shortcutsample">
<uses-sdk android:minSdkVersion="25" />
<uses-sdk android:minSdkVersion="25" android:targetSdkVersion="26" />
<uses-permission android:name="android.permission.INTERNET" />
@@ -42,6 +42,12 @@
<intent-filter>
<action android:name="android.intent.action.LOCALE_CHANGED" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
</intent-filter>
</receiver>
</application>
</manifest>

View File

@@ -24,6 +24,7 @@ import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.content.pm.ShortcutManagerCompat;
import android.util.ArraySet;
import android.util.Log;
import android.view.LayoutInflater;
@@ -88,7 +89,8 @@ public class Main extends ListActivity implements OnClickListener {
sVisibleInstances.add(this);
}
findViewById(R.id.request_new_pin_shortcut).setVisibility(
mShortcutManager.isRequestPinShortcutSupported() ? View.VISIBLE : View.GONE);
ShortcutManagerCompat.isRequestPinShortcutSupported(this)
? View.VISIBLE : View.GONE);
}
@Override
@@ -309,7 +311,8 @@ public class Main extends ListActivity implements OnClickListener {
remove.setVisibility(shortcut.isImmutable() ? View.GONE : View.VISIBLE);
disable.setVisibility(shortcut.isImmutable() ? View.GONE : View.VISIBLE);
requestPin.setVisibility(
mShortcutManager.isRequestPinShortcutSupported() ? View.VISIBLE : View.GONE);
ShortcutManagerCompat.isRequestPinShortcutSupported(mContext)
? View.VISIBLE : View.GONE);
remove.setOnClickListener(Main.this);
disable.setOnClickListener(Main.this);

View File

@@ -25,6 +25,8 @@ import android.graphics.drawable.Icon;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.PersistableBundle;
import android.support.v4.content.pm.ShortcutInfoCompat;
import android.support.v4.content.pm.ShortcutManagerCompat;
import android.util.Log;
import java.io.BufferedInputStream;
@@ -227,8 +229,8 @@ public class ShortcutHelper {
}
public void requestPinShortcut(String id) {
mShortcutManager.requestPinShortcut(
new ShortcutInfo.Builder(mContext, id).build(),
ShortcutManagerCompat.requestPinShortcut(mContext,
new ShortcutInfoCompat.Builder(mContext, id).build(),
MyReceiver.getPinRequestAcceptedIntent(mContext).getIntentSender());
}