Remove support for adding shortcuts from within the app

The preferred way to create a shortcut is through the launcher.
Although it is possible for an app to create shortcuts, there is
concern that allowing the app to do so may not be desirable
due to potentials for abuse.

As there is support now for adding shortcuts through the launcher,
this app do not need to also support creating them itself.
This commit is contained in:
Branden Archer
2017-11-29 19:03:34 -05:00
parent e14da63d06
commit 388a0723dc
6 changed files with 1 additions and 187 deletions

View File

@@ -89,7 +89,6 @@ public class LoyaltyCardViewActivityTest
*/
private void saveLoyaltyCardWithArguments(final Activity activity,
final String store, final String note,
final boolean addShortcut,
final String cardId,
final String barcodeType,
boolean creatingNewCard)
@@ -106,25 +105,18 @@ public class LoyaltyCardViewActivityTest
final EditText storeField = (EditText) activity.findViewById(R.id.storeNameEdit);
final EditText noteField = (EditText) activity.findViewById(R.id.noteEdit);
final CheckBox shortcutCheckbox = (CheckBox) activity.findViewById(R.id.shortcutCheckbox);
final TextView cardIdField = (TextView) activity.findViewById(R.id.cardIdView);
final TextView barcodeTypeField = (TextView) activity.findViewById(R.id.barcodeType);
storeField.setText(store);
noteField.setText(note);
shortcutCheckbox.setChecked(addShortcut);
cardIdField.setText(cardId);
barcodeTypeField.setText(barcodeType);
ShortcutAddedReceiver shortcutAddedReceiver = new ShortcutAddedReceiver();
shortcutAddedReceiver.registerReceiver(activity);
assertEquals(false, activity.isFinishing());
shadowOf(activity).clickMenuItem(R.id.action_save);
assertEquals(true, activity.isFinishing());
shortcutAddedReceiver.unregisterReceiver(activity);
assertEquals(1, db.getLoyaltyCardCount());
LoyaltyCard card = db.getLoyaltyCard(1);
@@ -132,28 +124,6 @@ public class LoyaltyCardViewActivityTest
assertEquals(note, card.note);
assertEquals(cardId, card.cardId);
assertEquals(barcodeType, card.barcodeType);
Intent shortcutRequest = shortcutAddedReceiver.lastRequest();
if(addShortcut)
{
assertNotNull(shortcutRequest);
String name = shortcutRequest.getStringExtra(Intent.EXTRA_SHORTCUT_NAME);
assertEquals(card.store, name);
Intent startIntent = shortcutRequest.getParcelableExtra(Intent.EXTRA_SHORTCUT_INTENT);
assertNotNull(startIntent);
Bundle startBundle = startIntent.getExtras();
assertNotNull(startBundle);
assertEquals(card.id, startBundle.getInt("id", -1));
assertEquals(true, startBundle.getBoolean("view", false));
}
else
{
assertNull(shortcutRequest);
}
}
/**
@@ -216,8 +186,6 @@ public class LoyaltyCardViewActivityTest
checkFieldProperties(activity, R.id.storeNameEdit, editVisibility, store);
checkFieldProperties(activity, R.id.storeNameView, viewVisibility, store);
checkFieldProperties(activity, R.id.noteEdit, editVisibility, note);
checkFieldProperties(activity, R.id.shortcutBorder, editVisibility, null);
checkFieldProperties(activity, R.id.shortcutTablerow, editVisibility, null);
checkFieldProperties(activity, R.id.noteView, viewVisibility, note);
checkFieldProperties(activity, R.id.cardIdView, View.VISIBLE, cardId);
checkFieldProperties(activity, R.id.cardIdDivider, cardId.isEmpty() ? View.GONE : View.VISIBLE, null);
@@ -308,30 +276,7 @@ public class LoyaltyCardViewActivityTest
checkAllFields(activity, ViewMode.ADD_CARD, "", "", BARCODE_DATA, BARCODE_TYPE);
// Save and check the gift card
saveLoyaltyCardWithArguments(activity, "store", "note", false, BARCODE_DATA, BARCODE_TYPE, true);
}
@Test
public void startWithoutParametersCaptureBarcodeCreateLoyaltyCardSaveShortcut() throws IOException
{
registerMediaStoreIntentHandler();
ActivityController activityController = Robolectric.buildActivity(LoyaltyCardViewActivity.class).create();
activityController.start();
activityController.visible();
activityController.resume();
Activity activity = (Activity)activityController.get();
checkAllFields(activity, ViewMode.ADD_CARD, "", "", "", "");
// Complete barcode capture successfully
captureBarcodeWithResult(activity, R.id.captureButton, true);
checkAllFields(activity, ViewMode.ADD_CARD, "", "", BARCODE_DATA, BARCODE_TYPE);
// Save and check the gift card
saveLoyaltyCardWithArguments(activity, "store", "note", true, BARCODE_DATA, BARCODE_TYPE, true);
saveLoyaltyCardWithArguments(activity, "store", "note", BARCODE_DATA, BARCODE_TYPE, true);
}
@Test

View File

@@ -1,39 +0,0 @@
package protect.card_locker;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
public class ShortcutAddedReceiver extends BroadcastReceiver
{
public static final String SHORTCUT_ADD_REQUEST = "com.android.launcher.action.INSTALL_SHORTCUT";
private Intent _request = null;
@Override
public void onReceive(Context context, Intent intent)
{
_request = intent;
}
public void registerReceiver(Context context)
{
context.registerReceiver(this, new IntentFilter(SHORTCUT_ADD_REQUEST));
}
public void unregisterReceiver(Context context)
{
context.unregisterReceiver(this);
}
public Intent lastRequest()
{
return _request;
}
public void reset()
{
_request = null;
}
}