blob: ffcf81b4d51ff1924044727e55f9a528729c28b4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
package cgeo.geocaching;
import cgeo.geocaching.activity.AbstractActionBarActivity;
import cgeo.geocaching.list.PseudoList;
import cgeo.geocaching.list.StoredList;
import rx.functions.Action1;
import android.content.Intent;
import android.content.Intent.ShortcutIconResource;
import android.os.Bundle;
public class CreateShortcutActivity extends AbstractActionBarActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// init
setTheme();
promptForShortcut();
}
private void promptForShortcut() {
new StoredList.UserInterface(this).promptForListSelection(R.string.create_shortcut, new Action1<Integer>() {
@Override
public void call(final Integer listId) {
final Intent shortcut = createShortcut(listId);
setResult(RESULT_OK, shortcut);
// finish activity to return the shortcut
finish();
}
}, false, PseudoList.HISTORY_LIST.id);
}
protected Intent createShortcut(int listId) {
final StoredList list = DataStore.getList(listId);
if (list == null) {
return null;
}
// target to be executed by the shortcut
final Intent targetIntent = new Intent(this, CacheListActivity.class);
targetIntent.putExtra(Intents.EXTRA_LIST_ID, list.id);
final ShortcutIconResource iconResource = Intent.ShortcutIconResource.fromContext(this, R.drawable.cgeo);
// shortcut to be returned
final Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, targetIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, list.title);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource);
return intent;
}
}
|