├── .gitignore
├── ActivityLauncherApp
├── build.gradle
├── lint.xml
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── ic_launcher-web.png
│ ├── java
│ ├── de
│ │ └── szalkowski
│ │ │ └── activitylauncher
│ │ │ └── rustore_fork
│ │ │ ├── ActivityLauncherApp.java
│ │ │ ├── async
│ │ │ ├── AllTasksListAsyncProvider.java
│ │ │ ├── AsyncProvider.java
│ │ │ └── IconListAsyncProvider.java
│ │ │ ├── data
│ │ │ ├── Constants.java
│ │ │ └── Db.java
│ │ │ ├── manager
│ │ │ └── PackageManagerCache.java
│ │ │ ├── object
│ │ │ ├── MyActivityInfo.java
│ │ │ └── MyPackageInfo.java
│ │ │ ├── ui
│ │ │ ├── activity
│ │ │ │ ├── BaseActivity.java
│ │ │ │ ├── MainActivity.java
│ │ │ │ ├── RootLauncherActivity.java
│ │ │ │ ├── SettingsActivity.java
│ │ │ │ └── ShortcutActivity.java
│ │ │ ├── adapter
│ │ │ │ ├── AllTasksListAdapter.java
│ │ │ │ └── IconListAdapter.java
│ │ │ └── fragment
│ │ │ │ ├── AllTasksListFragment.java
│ │ │ │ └── dialog
│ │ │ │ ├── DisclaimerDialogFragment.java
│ │ │ │ ├── IconPickerDialogFragment.java
│ │ │ │ └── ShortcutEditDialogFragment.java
│ │ │ └── util
│ │ │ ├── IconLoader.java
│ │ │ ├── RootDetection.java
│ │ │ ├── SettingsUtils.java
│ │ │ └── Signer.java
│ └── org
│ │ └── thirdparty
│ │ ├── IconCreator.java
│ │ └── Launcher.java
│ └── res
│ ├── drawable-v21
│ └── ic_baseline_more_vert_24.xml
│ ├── drawable
│ ├── ic_baseline_more_vert_24.xml
│ ├── ic_launcher_foreground.xml
│ ├── ic_search.xml
│ └── ic_settings.xml
│ ├── layout
│ ├── activity_main.xml
│ ├── activity_settings.xml
│ ├── all_activities_child_item.xml
│ ├── all_activities_group_item.xml
│ ├── dialog_edit_activity.xml
│ ├── fragment_all_list.xml
│ ├── fragment_settings.xml
│ ├── icon_picker.xml
│ └── progress_dialog.xml
│ ├── menu
│ └── main.xml
│ ├── mipmap-anydpi-v26
│ ├── ic_launcher.xml
│ └── ic_launcher_round.xml
│ ├── mipmap-hdpi
│ └── ic_launcher.png
│ ├── mipmap-mdpi
│ └── ic_launcher.png
│ ├── mipmap-xhdpi
│ └── ic_launcher.png
│ ├── mipmap-xxhdpi
│ └── ic_launcher.png
│ ├── mipmap-xxxhdpi
│ └── ic_launcher.png
│ ├── values-af-rZA
│ └── strings.xml
│ ├── values-ar-rSA
│ └── strings.xml
│ ├── values-bg-rBG
│ └── strings.xml
│ ├── values-ca-rES
│ └── strings.xml
│ ├── values-cs-rCZ
│ └── strings.xml
│ ├── values-da-rDK
│ └── strings.xml
│ ├── values-de-rDE
│ └── strings.xml
│ ├── values-el-rGR
│ └── strings.xml
│ ├── values-en-rGB
│ └── strings.xml
│ ├── values-en-rUS
│ └── strings.xml
│ ├── values-es-rES
│ └── strings.xml
│ ├── values-fa-rIR
│ └── strings.xml
│ ├── values-fi-rFI
│ └── strings.xml
│ ├── values-fr-rFR
│ └── strings.xml
│ ├── values-hi-rIN
│ └── strings.xml
│ ├── values-hu-rHU
│ └── strings.xml
│ ├── values-in-rID
│ └── strings.xml
│ ├── values-it-rIT
│ └── strings.xml
│ ├── values-iw-rIL
│ └── strings.xml
│ ├── values-ja-rJP
│ └── strings.xml
│ ├── values-kmr-rTR
│ └── strings.xml
│ ├── values-ko-rKR
│ └── strings.xml
│ ├── values-nl-rNL
│ └── strings.xml
│ ├── values-no-rNO
│ └── strings.xml
│ ├── values-pl-rPL
│ └── strings.xml
│ ├── values-pt-rBR
│ └── strings.xml
│ ├── values-pt-rPT
│ └── strings.xml
│ ├── values-ro-rRO
│ └── strings.xml
│ ├── values-ru-rRU
│ └── strings.xml
│ ├── values-si-rLK
│ └── strings.xml
│ ├── values-sk-rSK
│ └── strings.xml
│ ├── values-sl-rSI
│ └── strings.xml
│ ├── values-sr-rRS
│ └── strings.xml
│ ├── values-sv-rSE
│ └── strings.xml
│ ├── values-th-rTH
│ └── strings.xml
│ ├── values-tr-rTR
│ └── strings.xml
│ ├── values-uk-rUA
│ └── strings.xml
│ ├── values-vi-rVN
│ └── strings.xml
│ ├── values-zh-rCN
│ └── strings.xml
│ ├── values
│ ├── defaults.xml
│ ├── ic_launcher_background.xml
│ ├── locales.xml
│ ├── strings.xml
│ ├── theme_settings.xml
│ └── themes.xml
│ └── xml
│ └── preferences.xml
├── LICENSE
├── README.md
├── build.gradle
├── fastlane
└── metadata
│ └── android
│ ├── en-US
│ ├── changelogs
│ │ └── 137.txt
│ ├── full_description.txt
│ ├── images
│ │ ├── icon.png
│ │ └── phoneScreenshots
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ └── 3.png
│ └── short_description.txt
│ └── ru
│ ├── changelogs
│ └── 137.txt
│ ├── full_description.txt
│ └── short_description.txt
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── images
├── 1.png
├── 2.png
├── 3.png
└── rustore.png
├── settings.gradle
└── update-translations.sh
/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | local.properties
3 | /.idea
4 | /.vscode
5 | /.venv
6 | /.gradle
7 | /ActivityLauncherApp/build
8 | /ActivityLauncherApp/release
9 | /ActivityLauncherApp/keystore.jks
10 | *.iml
11 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 | android {
3 | signingConfigs {
4 | release {
5 | storeFile file(System.getenv("KEYSTORE") ?: "keystore.jks")
6 | storePassword System.getenv("KEYSTORE_PASSWORD")
7 | keyAlias System.getenv("KEY_ALIAS")
8 | keyPassword System.getenv("KEY_PASSWORD")
9 | }
10 | }
11 | compileSdk 33
12 | buildToolsVersion '33.0.0'
13 | defaultConfig {
14 | applicationId "de.szalkowski.activitylauncher.rustore_fork"
15 | minSdkVersion 23
16 | targetSdkVersion 33
17 | }
18 | buildTypes {
19 | release {
20 | minifyEnabled true
21 | shrinkResources true
22 | zipAlignEnabled true
23 | signingConfig signingConfigs.release
24 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.txt'
25 | }
26 | }
27 | compileOptions {
28 | sourceCompatibility JavaVersion.VERSION_11
29 | targetCompatibility JavaVersion.VERSION_11
30 | }
31 | bundle {
32 | language {
33 | enableSplit = false
34 | }
35 | }
36 | buildFeatures {
37 | viewBinding true
38 | }
39 | }
40 |
41 | dependencies {
42 | implementation 'androidx.appcompat:appcompat:1.1.0'
43 | implementation 'androidx.preference:preference:1.1.1'
44 | }
45 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/lint.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
12 |
15 |
18 |
19 |
29 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
43 |
48 |
49 |
50 |
51 |
52 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/ic_launcher-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sash0k/ActivityLauncher/ee0f22bd3d11cbd7109af4aaea29b8f25cc150b5/ActivityLauncherApp/src/main/ic_launcher-web.png
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/ActivityLauncherApp.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork;
2 |
3 | import android.app.Application;
4 |
5 | import androidx.preference.PreferenceManager;
6 |
7 | import de.szalkowski.activitylauncher.rustore_fork.util.RootDetection;
8 | import de.szalkowski.activitylauncher.rustore_fork.util.SettingsUtils;
9 | import de.szalkowski.activitylauncher.rustore_fork.data.Constants;
10 |
11 | public class ActivityLauncherApp extends Application {
12 |
13 | @Override
14 | public void onCreate() {
15 | super.onCreate();
16 | var prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
17 |
18 | SettingsUtils.setTheme(prefs.getString(Constants.PREF_THEME, "0"));
19 |
20 | if (!prefs.contains(Constants.PREF_ALLOW_ROOT)) {
21 | var hasSU = RootDetection.detectSU();
22 | prefs.edit().putBoolean(Constants.PREF_ALLOW_ROOT, hasSU).apply();
23 | }
24 |
25 | if (!prefs.contains(Constants.PREF_LANGUAGE)) {
26 | prefs.edit().putString(Constants.PREF_LANGUAGE, Constants.DEFAULT_LANGUAGE).apply();
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/async/AllTasksListAsyncProvider.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork.async;
2 |
3 | import android.content.Context;
4 |
5 | import de.szalkowski.activitylauncher.rustore_fork.ui.adapter.AllTasksListAdapter;
6 |
7 | public class AllTasksListAsyncProvider extends AsyncProvider {
8 | private final AllTasksListAdapter adapter;
9 |
10 | public AllTasksListAsyncProvider(
11 | Context context,
12 | AsyncProvider.Listener listener) {
13 | super(context, listener, true);
14 | this.adapter = new AllTasksListAdapter(context);
15 | }
16 |
17 | @Override
18 | protected AllTasksListAdapter run(Updater updater) {
19 | this.adapter.resolve(updater);
20 | return this.adapter;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/async/AsyncProvider.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork.async;
2 |
3 | import android.content.Context;
4 | import android.os.AsyncTask;
5 | import android.view.LayoutInflater;
6 |
7 | import androidx.appcompat.app.AlertDialog;
8 |
9 | import java.text.NumberFormat;
10 | import java.util.Locale;
11 |
12 | import de.szalkowski.activitylauncher.rustore_fork.R;
13 | import de.szalkowski.activitylauncher.rustore_fork.databinding.ProgressDialogBinding;
14 |
15 | public abstract class AsyncProvider extends AsyncTask {
16 | private final CharSequence message;
17 | private final Listener listener;
18 | private final AlertDialog dialog;
19 | private final ProgressDialogBinding binding;
20 | private final NumberFormat progressPercentFormat = NumberFormat.getPercentInstance();
21 | private int max;
22 |
23 | AsyncProvider(Context context, Listener listener, boolean showProgressDialog) {
24 | this.message = context.getText(R.string.dialog_progress_loading);
25 | this.listener = listener;
26 |
27 | if (showProgressDialog) {
28 | this.binding = ProgressDialogBinding.inflate(LayoutInflater.from(context));
29 | this.dialog = new AlertDialog.Builder(context).setView(binding.getRoot()).create();
30 | this.progressPercentFormat.setMaximumFractionDigits(0);
31 | } else {
32 | this.binding = null;
33 | this.dialog = null;
34 | }
35 | }
36 |
37 | @Override
38 | protected void onProgressUpdate(Integer... values) {
39 | if (this.binding != null && values.length > 0) {
40 | int value = values[0];
41 |
42 | if (value == 0) {
43 | this.binding.progress.setIndeterminate(false);
44 | this.binding.progress.setMax(this.max);
45 | }
46 |
47 | this.binding.progress.setProgress(value);
48 | this.binding.progressNumber.setText(
49 | String.format(Locale.getDefault(), "%1d/%2d", value, this.max)
50 | );
51 | double percent = (double) value / (double) this.max;
52 | this.binding.progressPercent.setText(this.progressPercentFormat.format(percent));
53 | }
54 | }
55 |
56 | @Override
57 | protected void onPreExecute() {
58 | super.onPreExecute();
59 |
60 | if (this.dialog != null && this.binding != null) {
61 | this.dialog.setCancelable(false);
62 | this.dialog.setTitle(this.message);
63 | this.binding.progress.setIndeterminate(true);
64 | this.dialog.show();
65 | }
66 | }
67 |
68 | @Override
69 | protected void onPostExecute(ReturnType result) {
70 | super.onPostExecute(result);
71 | if (this.listener != null) {
72 | this.listener.onProviderFinished(this, result);
73 | }
74 |
75 | if (this.dialog != null) {
76 | try {
77 | this.dialog.dismiss();
78 | } catch (IllegalArgumentException e) { /* ignore */ }
79 | }
80 | }
81 |
82 | abstract protected ReturnType run(Updater updater);
83 |
84 | @Override
85 | protected ReturnType doInBackground(Void... params) {
86 | return run(new Updater(this));
87 | }
88 |
89 | public interface Listener {
90 | void onProviderFinished(AsyncProvider task, ReturnType value);
91 | }
92 |
93 | public class Updater {
94 | private final AsyncProvider provider;
95 |
96 | Updater(AsyncProvider provider) {
97 | this.provider = provider;
98 | }
99 |
100 | public void update(int value) {
101 | this.provider.publishProgress(value);
102 | }
103 |
104 | public void updateMax(int value) {
105 | this.provider.max = value;
106 | }
107 | }
108 | }
109 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/async/IconListAsyncProvider.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork.async;
2 |
3 | import android.content.Context;
4 |
5 | import de.szalkowski.activitylauncher.rustore_fork.ui.adapter.IconListAdapter;
6 |
7 | public class IconListAsyncProvider extends AsyncProvider {
8 | private final IconListAdapter adapter;
9 |
10 | public IconListAsyncProvider(Context context, Listener listener) {
11 | super(context, listener, false);
12 | this.adapter = new IconListAdapter(context);
13 | }
14 |
15 | @Override
16 | protected IconListAdapter run(Updater updater) {
17 | adapter.resolve(updater);
18 | return this.adapter;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/data/Constants.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork.data;
2 |
3 | public class Constants {
4 | public static final String DEFAULT_LANGUAGE = "System Default";
5 |
6 | public static final String PREF_HIDE_PRIVATE = "hide_private";
7 | public static final String PREF_ALLOW_ROOT = "allow_root";
8 | public static final String PREF_THEME = "theme";
9 | public static final String PREF_LANGUAGE = "language";
10 | public static final String PREF_DISCLAIMER = "disclaimer_accepted";
11 | }
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/data/Db.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork.data;
2 |
3 | import android.content.ContentValues;
4 | import android.content.Context;
5 | import android.database.Cursor;
6 | import android.database.sqlite.SQLiteDatabase;
7 | import android.database.sqlite.SQLiteOpenHelper;
8 | import android.provider.BaseColumns;
9 |
10 | import java.util.ArrayList;
11 | import java.util.List;
12 |
13 | public class Db {
14 | public static final String QUERIES_TABLE = "queries";
15 | public static final String VALUE = "value";
16 |
17 | public static void insertItem(Context context, String value) {
18 | ContentValues content = new ContentValues();
19 | content.put(VALUE, value);
20 |
21 | SQLiteDatabase database = new DbOpenHelper(context).getWritableDatabase();
22 | database.insertWithOnConflict(QUERIES_TABLE, null, content, SQLiteDatabase.CONFLICT_IGNORE);
23 | }
24 |
25 | public static List getItems(Context context, String value) {
26 | List result = new ArrayList<>();
27 |
28 | SQLiteDatabase database = new DbOpenHelper(context).getReadableDatabase();
29 | Cursor cursor = database.query(QUERIES_TABLE, new String[] { VALUE }, VALUE + " LIKE ?", new String[] { value + "%" }, null, null, null);
30 | while (cursor.moveToNext()) {
31 | result.add(cursor.getString(0));
32 | }
33 | cursor.close();
34 |
35 | return result;
36 | }
37 |
38 | public static class DbOpenHelper extends SQLiteOpenHelper {
39 | private static final int DB_VERSION = 1;
40 | private static final String DB_NAME = "data.db";
41 |
42 | public DbOpenHelper(Context context) {
43 | super(context, DB_NAME, null, DB_VERSION);
44 | }
45 |
46 | @Override
47 | public void onCreate(SQLiteDatabase sqLiteDatabase) {
48 | final String queriesTable = "CREATE TABLE IF NOT EXISTS [" + QUERIES_TABLE + "]" +
49 | "([" + BaseColumns._ID + "] INTEGER PRIMARY KEY AUTOINCREMENT," +
50 | " [" + VALUE + "] TEXT UNIQUE NOT NULL)";
51 |
52 | sqLiteDatabase.execSQL(queriesTable);
53 | }
54 |
55 | @Override
56 | public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
57 | sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + QUERIES_TABLE);
58 | onCreate(sqLiteDatabase);
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/manager/PackageManagerCache.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork.manager;
2 |
3 | import android.content.ComponentName;
4 | import android.content.pm.PackageInfo;
5 | import android.content.pm.PackageManager;
6 | import android.content.pm.PackageManager.NameNotFoundException;
7 | import android.content.res.Configuration;
8 |
9 | import java.util.HashMap;
10 | import java.util.Map;
11 |
12 | import de.szalkowski.activitylauncher.rustore_fork.object.MyActivityInfo;
13 | import de.szalkowski.activitylauncher.rustore_fork.object.MyPackageInfo;
14 |
15 | public class PackageManagerCache {
16 | private static PackageManagerCache instance = null;
17 | private final Map packageInfos;
18 | private final Map activityInfos;
19 | private final PackageManager pm;
20 |
21 | private PackageManagerCache(PackageManager pm) {
22 | this.pm = pm;
23 | this.packageInfos = new HashMap<>();
24 | this.activityInfos = new HashMap<>();
25 | }
26 |
27 | public static PackageManagerCache getPackageManagerCache(PackageManager pm) {
28 | if (instance == null) {
29 | instance = new PackageManagerCache(pm);
30 | }
31 | return instance;
32 | }
33 |
34 | public static void resetPackageManagerCache() {
35 | instance = null;
36 | }
37 |
38 | public MyPackageInfo getPackageInfo(String packageName, Configuration config) throws NameNotFoundException {
39 | MyPackageInfo myInfo;
40 |
41 | synchronized (packageInfos) {
42 | if (packageInfos.containsKey(packageName)) {
43 | return packageInfos.get(packageName);
44 | }
45 |
46 | PackageInfo info;
47 | info = pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
48 |
49 | myInfo = MyPackageInfo.fromPackageInfo(this, info, config);
50 | packageInfos.put(packageName, myInfo);
51 | }
52 |
53 | return myInfo;
54 | }
55 |
56 | public MyActivityInfo getActivityInfo(ComponentName activityName, Configuration config) {
57 | MyActivityInfo myInfo;
58 |
59 | synchronized (activityInfos) {
60 | if (activityInfos.containsKey(activityName)) {
61 | return activityInfos.get(activityName);
62 | }
63 |
64 | myInfo = MyActivityInfo.fromComponentName(pm, activityName, config);
65 | activityInfos.put(activityName, myInfo);
66 | }
67 |
68 | return myInfo;
69 | }
70 |
71 | public PackageManager getPackageManager() {
72 | return this.pm;
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/object/MyActivityInfo.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork.object;
2 |
3 | import android.content.ComponentName;
4 | import android.content.pm.ActivityInfo;
5 | import android.content.pm.PackageManager;
6 | import android.content.res.Configuration;
7 | import android.content.res.Resources;
8 | import android.graphics.drawable.Drawable;
9 | import android.util.DisplayMetrics;
10 |
11 | public class MyActivityInfo implements Comparable {
12 | protected Drawable icon;
13 | protected String name;
14 | ComponentName component_name;
15 | int icon_resource;
16 | String icon_resource_name;
17 | boolean is_private;
18 |
19 | public static MyActivityInfo fromComponentName(PackageManager pm, ComponentName activity, Configuration config) {
20 | var info = new MyActivityInfo();
21 | info.component_name = activity;
22 |
23 | ActivityInfo act;
24 | try {
25 | act = pm.getActivityInfo(activity, 0);
26 | info.name = getActivityName(config, pm, activity, act);
27 | try {
28 | info.icon = act.loadIcon(pm);
29 | } catch (Exception e) {
30 | info.icon = pm.getDefaultActivityIcon();
31 | }
32 | info.icon_resource = act.getIconResource();
33 | } catch (Exception e) {
34 | info.name = activity.getShortClassName();
35 | info.icon = pm.getDefaultActivityIcon();
36 | info.icon_resource = 0;
37 | }
38 |
39 | info.icon_resource_name = null;
40 | if (info.icon_resource != 0) {
41 | try {
42 | info.icon_resource_name = pm.getResourcesForActivity(activity).getResourceName(info.icon_resource);
43 | } catch (Exception ignored) {
44 | }
45 | }
46 |
47 | return info;
48 | }
49 |
50 | public ComponentName getComponentName() {
51 | return component_name;
52 | }
53 |
54 | public Drawable getIcon() {
55 | return icon;
56 | }
57 |
58 | public int getIconResource() {
59 | return icon_resource;
60 | }
61 |
62 | public String getIconResourceName() {
63 | return icon_resource_name;
64 | }
65 |
66 | public String getName() {
67 | return name;
68 | }
69 |
70 | public Boolean isPrivate() {
71 | return is_private;
72 | }
73 |
74 | private static String getActivityName(Configuration config, PackageManager pm, ComponentName activityComponent, ActivityInfo activity) throws PackageManager.NameNotFoundException {
75 | Resources appRes = pm.getResourcesForApplication(activityComponent.getPackageName());
76 | appRes.updateConfiguration(config, new DisplayMetrics());
77 | return appRes.getString(activity.labelRes);
78 | }
79 |
80 | public void setComponentName(ComponentName component_name) {
81 | this.component_name = component_name;
82 | }
83 |
84 | public void setIcon(Drawable icon) {
85 | this.icon = icon;
86 | }
87 |
88 | public void setIconResource(int icon_resource) {
89 | this.icon_resource = icon_resource;
90 | }
91 |
92 | public void setIconResourceName(String icon_resource_name) {
93 | this.icon_resource_name = icon_resource_name;
94 | }
95 |
96 | public void setName(String name) {
97 | this.name = name;
98 | }
99 |
100 | public void setPrivate(Boolean is_private) {
101 | this.is_private = is_private;
102 | }
103 |
104 | @Override
105 | public int compareTo(MyActivityInfo another) {
106 | int cmp_name = this.name.compareTo(another.name);
107 | if (cmp_name != 0) return cmp_name;
108 |
109 | return this.component_name.compareTo(another.component_name);
110 | }
111 |
112 | @Override
113 | public boolean equals(Object other) {
114 | if (!other.getClass().equals(MyActivityInfo.class)) {
115 | return false;
116 | }
117 |
118 | MyActivityInfo other_info = (MyActivityInfo) other;
119 | return this.component_name.equals(other_info.component_name);
120 | }
121 |
122 | public void setPrivate(boolean isPrivate) {
123 | this.is_private = isPrivate;
124 | }
125 | }
126 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/ui/activity/BaseActivity.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork.ui.activity;
2 |
3 | import android.content.res.Configuration;
4 |
5 | import androidx.appcompat.app.AppCompatActivity;
6 |
7 | public class BaseActivity extends AppCompatActivity {
8 |
9 | /**
10 | * fix locale in dark theme AppCompat 1.1.0
11 | * https://stackoverflow.com/a/58004553 for details
12 | */
13 | @Override
14 | public void applyOverrideConfiguration(Configuration overrideConfiguration) {
15 | if (overrideConfiguration != null) {
16 | int uiMode = overrideConfiguration.uiMode;
17 | overrideConfiguration.setTo(getBaseContext().getResources().getConfiguration());
18 | overrideConfiguration.uiMode = uiMode;
19 | }
20 | super.applyOverrideConfiguration(overrideConfiguration);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/ui/activity/RootLauncherActivity.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork.ui.activity;
2 |
3 | import android.content.ComponentName;
4 | import android.os.Bundle;
5 | import android.widget.Toast;
6 |
7 | import org.thirdparty.Launcher;
8 |
9 | import de.szalkowski.activitylauncher.rustore_fork.R;
10 | import de.szalkowski.activitylauncher.rustore_fork.util.Signer;
11 |
12 | public class RootLauncherActivity extends BaseActivity {
13 |
14 | @Override
15 | protected void onCreate(Bundle savedInstanceState) {
16 | super.onCreate(savedInstanceState);
17 |
18 | try {
19 | Bundle bundle = getIntent().getExtras();
20 | if (bundle == null) {
21 | return;
22 | }
23 |
24 | String pkg = bundle.getString("pkg");
25 | String cls = bundle.getString("cls");
26 | String signature = bundle.getString("sign");
27 |
28 | var componentName = new ComponentName(pkg, cls);
29 |
30 | var signer = new Signer(getApplicationContext());
31 | if (signer.validateComponentNameSignature(componentName, signature)) {
32 | Launcher.launchActivity(getApplicationContext(), componentName, true, true);
33 | }
34 | } catch (Exception e) {
35 | e.printStackTrace();
36 | Toast.makeText(getApplicationContext(), getText(R.string.error).toString() + ": " + e, Toast.LENGTH_LONG).show();
37 | } finally {
38 | finish();
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/ui/activity/ShortcutActivity.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork.ui.activity;
2 |
3 | import static org.thirdparty.Launcher.launchActivity;
4 |
5 | import android.content.Intent;
6 | import android.os.Bundle;
7 |
8 | import androidx.annotation.Nullable;
9 |
10 | public class ShortcutActivity extends BaseActivity {
11 |
12 | @Override
13 | public void onCreate(@Nullable Bundle savedInstanceState) {
14 | super.onCreate(savedInstanceState);
15 | try {
16 | Intent launchIntent = Intent.parseUri(getIntent().getStringExtra("extra_intent"), 0);
17 | launchActivity(this, launchIntent.getComponent(), false, false);
18 | } catch (Exception e) {
19 | e.printStackTrace();
20 | } finally {
21 | finish();
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/ui/adapter/IconListAdapter.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork.ui.adapter;
2 |
3 | import android.content.Context;
4 | import android.content.SharedPreferences;
5 | import android.content.pm.PackageInfo;
6 | import android.content.pm.PackageManager;
7 | import android.content.pm.PackageManager.NameNotFoundException;
8 | import android.content.res.Configuration;
9 | import android.graphics.drawable.Drawable;
10 | import android.view.View;
11 | import android.view.ViewGroup;
12 | import android.widget.AbsListView;
13 | import android.widget.BaseAdapter;
14 | import android.widget.ImageView;
15 |
16 | import androidx.preference.PreferenceManager;
17 |
18 | import java.util.List;
19 | import java.util.Objects;
20 | import java.util.TreeSet;
21 |
22 | import de.szalkowski.activitylauncher.rustore_fork.data.Constants;
23 | import de.szalkowski.activitylauncher.rustore_fork.util.IconLoader;
24 | import de.szalkowski.activitylauncher.rustore_fork.util.SettingsUtils;
25 | import de.szalkowski.activitylauncher.rustore_fork.async.IconListAsyncProvider;
26 | import de.szalkowski.activitylauncher.rustore_fork.manager.PackageManagerCache;
27 | import de.szalkowski.activitylauncher.rustore_fork.object.MyPackageInfo;
28 |
29 | public class IconListAdapter extends BaseAdapter {
30 | private final PackageManager pm;
31 | private final Context context;
32 | private final IconLoader loader;
33 | private final SharedPreferences prefs;
34 | private String[] icons;
35 |
36 | public IconListAdapter(Context context) {
37 | this.context = context;
38 | this.pm = context.getPackageManager();
39 | this.loader = new IconLoader(context);
40 | this.prefs = PreferenceManager.getDefaultSharedPreferences(Objects.requireNonNull(context));
41 | }
42 |
43 | public void resolve(IconListAsyncProvider.Updater updater) {
44 | TreeSet icons = new TreeSet<>();
45 | List all_packages = this.pm.getInstalledPackages(0);
46 | Configuration locale = SettingsUtils.createLocaleConfiguration(prefs.getString(Constants.PREF_LANGUAGE, Constants.DEFAULT_LANGUAGE));
47 | updater.updateMax(all_packages.size());
48 | updater.update(0);
49 |
50 | PackageManagerCache cache = PackageManagerCache.getPackageManagerCache(this.pm);
51 |
52 | for (int i = 0; i < all_packages.size(); ++i) {
53 | updater.update(i + 1);
54 |
55 | PackageInfo pack = all_packages.get(i);
56 | try {
57 | MyPackageInfo myPack = cache.getPackageInfo(pack.packageName, locale);
58 |
59 | for (int j = 0; j < myPack.getActivitiesCount(); ++j) {
60 | String icon_resource_name = myPack.getActivity(j).getIconResourceName();
61 | if (icon_resource_name != null) {
62 | icons.add(icon_resource_name);
63 | }
64 | }
65 | } catch (NameNotFoundException | RuntimeException ignored) {
66 | }
67 | }
68 |
69 | this.icons = new String[icons.size()];
70 | this.icons = icons.toArray(this.icons);
71 | }
72 |
73 | @Override
74 | public int getCount() {
75 | return icons.length;
76 | }
77 |
78 | @Override
79 | public Object getItem(int position) {
80 | return icons[position];
81 | }
82 |
83 | @Override
84 | public long getItemId(int position) {
85 | return 0;
86 | }
87 |
88 | @Override
89 | public View getView(int position, View convertView, ViewGroup parent) {
90 | ImageView view = new ImageView(this.context);
91 | AbsListView.LayoutParams layout = new AbsListView.LayoutParams(50, 50);
92 | view.setLayoutParams(layout);
93 | String icon_resource_string = this.icons[position];
94 | Drawable icon = loader.getIcon(icon_resource_string);
95 | view.setImageDrawable(icon);
96 | return view;
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/ui/fragment/dialog/DisclaimerDialogFragment.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork.ui.fragment.dialog;
2 |
3 | import android.app.Dialog;
4 | import android.content.SharedPreferences;
5 | import android.os.Bundle;
6 |
7 | import androidx.annotation.NonNull;
8 | import androidx.appcompat.app.AlertDialog;
9 | import androidx.fragment.app.DialogFragment;
10 | import androidx.preference.PreferenceManager;
11 |
12 | import de.szalkowski.activitylauncher.rustore_fork.R;
13 | import de.szalkowski.activitylauncher.rustore_fork.data.Constants;
14 |
15 | public class DisclaimerDialogFragment extends DialogFragment {
16 | @NonNull
17 | @Override
18 | public Dialog onCreateDialog(Bundle savedInstanceState) {
19 | AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity());
20 | builder.setTitle(R.string.title_dialog_disclaimer)
21 | .setMessage(R.string.dialog_disclaimer)
22 | .setPositiveButton(android.R.string.yes, (dialog, which) -> {
23 | SharedPreferences editor = PreferenceManager.getDefaultSharedPreferences(requireActivity().getBaseContext());
24 | editor.edit().putBoolean(Constants.PREF_DISCLAIMER, true).apply();
25 | })
26 | .setNegativeButton(android.R.string.cancel, (dialog, which) -> {
27 | SharedPreferences editor = PreferenceManager.getDefaultSharedPreferences(requireActivity().getBaseContext());
28 | editor.edit().putBoolean(Constants.PREF_DISCLAIMER, false).apply();
29 | requireActivity().finish();
30 | });
31 |
32 | return builder.create();
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/ui/fragment/dialog/IconPickerDialogFragment.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork.ui.fragment.dialog;
2 |
3 | import android.app.Dialog;
4 | import android.content.Context;
5 | import android.os.Bundle;
6 | import android.view.LayoutInflater;
7 | import android.view.View;
8 | import android.widget.GridView;
9 | import android.widget.Toast;
10 |
11 | import androidx.annotation.NonNull;
12 | import androidx.appcompat.app.AlertDialog;
13 | import androidx.fragment.app.DialogFragment;
14 |
15 | import de.szalkowski.activitylauncher.rustore_fork.R;
16 | import de.szalkowski.activitylauncher.rustore_fork.async.AsyncProvider;
17 | import de.szalkowski.activitylauncher.rustore_fork.async.IconListAsyncProvider;
18 | import de.szalkowski.activitylauncher.rustore_fork.ui.adapter.IconListAdapter;
19 |
20 | public class IconPickerDialogFragment extends DialogFragment implements IconListAsyncProvider.Listener {
21 | private GridView grid;
22 | private IconPickerListener listener = null;
23 |
24 | @Override
25 | public void onAttach(@NonNull Context activity) {
26 | super.onAttach(activity);
27 |
28 | IconListAsyncProvider provider = new IconListAsyncProvider(this.getActivity(), this);
29 | provider.execute();
30 | }
31 |
32 | public void attachIconPickerListener(IconPickerListener listener) {
33 | this.listener = listener;
34 | }
35 |
36 | @NonNull
37 | @Override
38 | public Dialog onCreateDialog(Bundle savedInstanceState) {
39 | AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity());
40 | LayoutInflater inflater = (LayoutInflater) requireActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
41 | View view = inflater.inflate(R.layout.icon_picker, null);
42 |
43 | this.grid = (GridView) view;
44 | this.grid.setOnItemClickListener((view1, item, index, id) -> {
45 | if (IconPickerDialogFragment.this.listener != null) {
46 | IconPickerDialogFragment.this.listener.iconPicked(view1.getAdapter().getItem(index).toString());
47 | IconPickerDialogFragment.this.requireDialog().dismiss();
48 | }
49 | });
50 |
51 | builder.setTitle(R.string.title_dialog_icon_picker)
52 | .setView(view)
53 | .setNegativeButton(android.R.string.cancel, (dialog, which) -> IconPickerDialogFragment.this.requireDialog().cancel());
54 |
55 | return builder.create();
56 | }
57 |
58 | @Override
59 | public void onProviderFinished(AsyncProvider task,
60 | IconListAdapter value) {
61 | try {
62 | this.grid.setAdapter(value);
63 | } catch (Exception e) {
64 | Toast.makeText(this.getActivity(), R.string.error_icons, Toast.LENGTH_SHORT).show();
65 | }
66 | }
67 |
68 | public interface IconPickerListener {
69 | void iconPicked(String icon);
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/util/IconLoader.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork.util;
2 |
3 | import android.annotation.TargetApi;
4 | import android.content.Context;
5 | import android.content.pm.PackageManager;
6 | import android.content.res.Resources;
7 | import android.graphics.drawable.Drawable;
8 | import android.os.Build;
9 |
10 | import androidx.core.content.res.ResourcesCompat;
11 |
12 | public class IconLoader {
13 | private final PackageManager pm;
14 | private final Context context;
15 |
16 | public IconLoader(Context context) {
17 | this.context = context;
18 | this.pm = context.getPackageManager();
19 | }
20 |
21 | @TargetApi(19)
22 | static Drawable getDrawable(Resources res, int id) {
23 | return res.getDrawable(id);
24 | }
25 |
26 | @TargetApi(21)
27 | static Drawable getDrawable(Resources res, int id, Resources.Theme theme) {
28 | return ResourcesCompat.getDrawable(res,id, theme);
29 | }
30 |
31 | public Drawable getIcon(String icon_resource_string) {
32 | try {
33 | String pack = icon_resource_string.substring(0, icon_resource_string.indexOf(':'));
34 | String type = icon_resource_string.substring(icon_resource_string.indexOf(':') + 1, icon_resource_string.indexOf('/'));
35 | String name = icon_resource_string.substring(icon_resource_string.indexOf('/') + 1);
36 | Resources res = this.pm.getResourcesForApplication(pack);
37 | int id = res.getIdentifier(name, type, pack);
38 |
39 | if (Build.VERSION.SDK_INT >= 21) {
40 | return IconLoader.getDrawable(res, id, this.context.getTheme());
41 | } else {
42 | return IconLoader.getDrawable(res, id);
43 | }
44 | } catch (Exception e) {
45 | return this.pm.getDefaultActivityIcon();
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/util/RootDetection.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork.util;
2 |
3 | import java.io.File;
4 | import java.util.Objects;
5 | import java.util.Vector;
6 |
7 | public class RootDetection {
8 | public static boolean detectSU() {
9 | var paths = new Vector();
10 | var dirs = Objects.requireNonNull(System.getenv("PATH")).split(":");
11 | for (var dir : dirs) {
12 | paths.add(new File(dir, "su"));
13 | }
14 |
15 | for (var path : paths) {
16 | if (path.exists() && path.canExecute() && path.isFile()) {
17 | return true;
18 | }
19 | }
20 |
21 | return false;
22 | }
23 |
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/util/SettingsUtils.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork.util;
2 |
3 | import android.content.res.Configuration;
4 |
5 | import androidx.appcompat.app.AppCompatDelegate;
6 |
7 | import java.util.Locale;
8 |
9 | public class SettingsUtils {
10 | public final static String THEME_DEFAULT = "0";
11 | public final static String THEME_LIGHT = "1";
12 | public final static String THEME_DARK = "2";
13 |
14 | public static Configuration createLocaleConfiguration(String language) {
15 | Configuration config = new Configuration();
16 | if (language.contains("_")) {
17 | String[] parts = language.split("_");
18 | Locale locale = new Locale(parts[0], parts[1]);
19 | Locale.setDefault(locale);
20 | config.locale = locale;
21 | }
22 | return config;
23 | }
24 |
25 | public static String getCountryName(String name) {
26 | for (Locale locale : Locale.getAvailableLocales()) {
27 | if (name.equals(locale.getLanguage() + '_' + locale.getCountry())) {
28 | String language = locale.getDisplayName(locale);
29 | return language.substring(0, 1).toUpperCase() + language.substring(1);
30 | }
31 | }
32 | return name;
33 | }
34 |
35 | public static void setTheme(String theme) {
36 | switch (theme) {
37 | default:
38 | case THEME_DEFAULT:
39 | AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
40 | break;
41 | case THEME_LIGHT:
42 | AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
43 | break;
44 | case THEME_DARK:
45 | AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
46 | break;
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/de/szalkowski/activitylauncher/rustore_fork/util/Signer.java:
--------------------------------------------------------------------------------
1 | package de.szalkowski.activitylauncher.rustore_fork.util;
2 |
3 | import android.content.ComponentName;
4 | import android.content.Context;
5 | import android.util.Base64;
6 |
7 | import java.security.InvalidKeyException;
8 | import java.security.NoSuchAlgorithmException;
9 | import java.security.SecureRandom;
10 |
11 | import javax.crypto.Mac;
12 | import javax.crypto.spec.SecretKeySpec;
13 |
14 | public class Signer {
15 | private final String key;
16 |
17 | public Signer(Context context) {
18 | var preferences = context.getSharedPreferences("signer", Context.MODE_PRIVATE);
19 | if (!preferences.contains("key")) {
20 | SecureRandom random = new SecureRandom();
21 | byte[] bytes = new byte[256];
22 | random.nextBytes(bytes);
23 |
24 | this.key = Base64.encodeToString(bytes, Base64.NO_WRAP);
25 | preferences.edit().putString("key", this.key).apply();
26 | } else {
27 | this.key = preferences.getString("key", "");
28 | }
29 | }
30 |
31 | /**
32 | * Adapted from StackOverflow:
33 | * https://stackoverflow.com/questions/36004761/is-there-any-function-for-creating-hmac256-string-in-android
34 | */
35 | private static String hmac256(String key, String message) throws NoSuchAlgorithmException, InvalidKeyException {
36 | Mac mac = Mac.getInstance("HmacSHA256");
37 | mac.init(new SecretKeySpec(key.getBytes(), "HmacSHA256"));
38 | byte[] result = mac.doFinal(message.getBytes());
39 | return Base64.encodeToString(result, Base64.NO_WRAP);
40 | }
41 |
42 | public String signComponentName(ComponentName comp) throws InvalidKeyException, NoSuchAlgorithmException {
43 | var name = comp.flattenToShortString();
44 | return hmac256(this.key, name);
45 | }
46 |
47 | public boolean validateComponentNameSignature(ComponentName comp, String signature) throws InvalidKeyException, NoSuchAlgorithmException {
48 | var compSignature = this.signComponentName(comp);
49 | return signature.equals(compSignature);
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/java/org/thirdparty/Launcher.java:
--------------------------------------------------------------------------------
1 | package org.thirdparty;
2 |
3 | import android.content.ComponentName;
4 | import android.content.Context;
5 | import android.content.Intent;
6 | import android.widget.Toast;
7 |
8 | import androidx.annotation.NonNull;
9 |
10 | import java.io.IOException;
11 | import java.io.InputStreamReader;
12 | import java.io.Reader;
13 | import java.nio.charset.StandardCharsets;
14 | import java.util.regex.Matcher;
15 | import java.util.regex.Pattern;
16 |
17 | import de.szalkowski.activitylauncher.rustore_fork.R;
18 |
19 | public class Launcher {
20 | /**
21 | * Got reference from stackoverflow.com URL
22 | * https://stackoverflow.com/questions/9194725/run-android-program-as-root
23 | * https://stackoverflow.com/questions/12343227/escaping-bash-function-arguments-for-use-by-su-c
24 | */
25 | public static void launchActivity(Context context, ComponentName activity, boolean asRoot, boolean showToast) {
26 | Intent intent = IconCreator.getActivityIntent(activity, null);
27 |
28 | if (showToast)
29 | Toast.makeText(context, String.format(context.getText(R.string.starting_activity).toString(), activity.flattenToShortString()),
30 | Toast.LENGTH_LONG).show();
31 | try {
32 | if (!asRoot) {
33 | context.startActivity(intent);
34 | } else {
35 | startRootActivity(context, activity);
36 | }
37 | } catch (Exception e) {
38 | e.printStackTrace();
39 | Toast.makeText(context, context.getText(R.string.error).toString() + ": " + e, Toast.LENGTH_LONG).show();
40 | }
41 | }
42 |
43 | private static void startRootActivity(Context context, ComponentName activity) throws IOException, InterruptedException, IllegalArgumentException {
44 | var component = activity.flattenToShortString();
45 | boolean isValid = validateComponentName(component);
46 | if (!isValid) {
47 | throw new IllegalArgumentException(String.format(context.getString(R.string.exception_invalid_component_name), component));
48 | }
49 | Process process = Runtime.getRuntime().exec(new String[]{"su", "-c", "am start -n " + component});
50 | String output = getProcessOutput(process);
51 |
52 | var exitValue = process.waitFor();
53 | if (exitValue > 0) {
54 | throw new RuntimeException(String.format(context.getString(R.string.exception_command_error), exitValue, output));
55 | }
56 | }
57 | /**
58 | * Got reference from stackoverflow.com URL:
59 | * https://stackoverflow.com/questions/309424/how-do-i-read-convert-an-inputstream-into-a-string-in-java
60 | */
61 | @NonNull
62 | private static String getProcessOutput(Process process) throws IOException {
63 | var stream = process.getErrorStream();
64 | int bufferSize = 1024;
65 | char[] buffer = new char[bufferSize];
66 | StringBuilder out = new StringBuilder();
67 | Reader in = new InputStreamReader(stream, StandardCharsets.UTF_8);
68 | for (int numRead; (numRead = in.read(buffer, 0, buffer.length)) > 0; ) {
69 | out.append(buffer, 0, numRead);
70 | }
71 | return out.toString();
72 | }
73 |
74 | /**
75 | * In order to be on the safe side, validate component name before merging it into a root shell command
76 | *
77 | * @param component component name
78 | * @return true, if valid
79 | */
80 | private static boolean validateComponentName(String component) {
81 | Pattern p = Pattern.compile("^[./a-zA-Z0-9]+$");
82 | Matcher m = p.matcher(component);
83 | return m.matches();
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/drawable-v21/ic_baseline_more_vert_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/drawable/ic_baseline_more_vert_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/drawable/ic_launcher_foreground.xml:
--------------------------------------------------------------------------------
1 |
6 |
8 |
9 |
12 |
15 |
18 |
21 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/drawable/ic_search.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/drawable/ic_settings.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/layout/activity_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/layout/all_activities_child_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
21 |
22 |
29 |
30 |
39 |
40 |
45 |
46 |
53 |
54 |
55 |
56 |
63 |
64 |
65 |
66 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/layout/all_activities_group_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
21 |
22 |
28 |
29 |
39 |
40 |
48 |
49 |
50 |
51 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/layout/fragment_all_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/layout/fragment_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/layout/icon_picker.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/layout/progress_dialog.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
14 |
17 |
18 |
24 |
25 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/menu/main.xml:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sash0k/ActivityLauncher/ee0f22bd3d11cbd7109af4aaea29b8f25cc150b5/ActivityLauncherApp/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sash0k/ActivityLauncher/ee0f22bd3d11cbd7109af4aaea29b8f25cc150b5/ActivityLauncherApp/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sash0k/ActivityLauncher/ee0f22bd3d11cbd7109af4aaea29b8f25cc150b5/ActivityLauncherApp/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sash0k/ActivityLauncher/ee0f22bd3d11cbd7109af4aaea29b8f25cc150b5/ActivityLauncherApp/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sash0k/ActivityLauncher/ee0f22bd3d11cbd7109af4aaea29b8f25cc150b5/ActivityLauncherApp/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-af-rZA/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Aktiwiteit Launcher
4 | Launches hidden activities and creates shortcuts for installed apps
5 | Alle aktiwiteite
6 | Vrywaring
7 | Kies \'n ikoon
8 | Laai tans…
9 | Gebruik hierdie sagteware op jou eie risiko. Sommige toepassings kan nie optree soos verwag wanneer hulle aktiwiteite is geloods in die verkeerde konteks wat lei tot verlies van data of selfs erger. Jy het gewaarsku. Doen jy dit verstaan en steeds wil hierdie sagteware gebruik?
10 | Laai aktiwiteit
11 | Launch activity as root
12 | Skep kortpad
13 | Create shortcut as root
14 | Redigeer kortpad
15 | Naam
16 | Pakket
17 | Klas
18 | Ikoon
19 | Menu
20 | private
21 | As root
22 | Begin aktiwiteit: %s
23 | Begin toediening: %s
24 | Skep aktiwiteit kortpad vir %s
25 | Skep aansoek kortpad vir %s
26 | Fout
27 | Kon nie taak lys
28 | Error creating shortcut
29 | Fout laai ikone
30 | Fout: ongeldige ikoon hulpbron
31 | Fout: ongeldige ikoon formaat
32 | Package does not have a default activity - try to select one explicitly
33 | Current launcher does not support \"PinShortcut\". Unable to create shortcut.
34 | Warning: Root privileges are probably not available on this device.
35 | Invalid or potentially harmful component name: %s
36 | Command returned error code: %d, output: %s
37 | Bekyk Sourcecode
38 | The source code of this App is available for reading and modifying on GitHub. Feel free to send us pull requests with improvements and bugfixes.
39 | Help vertaling!
40 | If you are enjoying Activity Launcher, please consider translating the App into your language.
41 | Rapporteer \'n probleem
42 | Please submit your suggestions or issues on our GitHub project page.
43 | Filter…
44 | package/action
45 | Settings
46 | Hide private activities
47 | Hide private (unexported and disabled) activities, that cannot be started without root access
48 | Enable privileged mode
49 | Allow launching private activities by using root privileges
50 | Language
51 | Theme
52 | System Default
53 | Light Theme
54 | Dark Theme
55 |
56 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-ar-rSA/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | مشغل النشاط
4 | يطلق الأنشطة المخفية وينشئ اختصارات للتطبيقات المثبتة
5 | جميع الأنشطة
6 | إخلاء مسؤولية
7 | اختر رمزا
8 | جار التحميل…
9 | استخدام هذا البرنامج على مسؤوليتك الخاصة. بعض التطبيقات قد لا تتصرف كما هو متوقع عند إطلاق أنشطتها في سياق خاطئ يؤدي إلى فقدان البيانات أو حتى أسوأ من ذلك. وقد تم تحذيرك. هل نفهم هذا ولا تزال ترغب في استخدام هذا البرنامج؟
10 | إطلاق النشاط
11 | تشغيل النشاط بصلاحيات الروت
12 | إنشاء اختصار
13 | إنشاء اختصار عبر صلاحيات الروت
14 | تحرير الاختصار
15 | الاسم
16 | حزمة
17 | فئة
18 | رمز
19 | القائمة
20 | خاص
21 | بصلاحيات الروت
22 | بدء النشاط: %s
23 | بدء تشغيل تطبيق: %s
24 | إنشاء اختصار النشاط ل %s
25 | إنشاء اختصار للتطبيق ل %s
26 | خطأ
27 | قائمة المهام المحملة بشكل خاطئ
28 | خطأ في إنشاء الاختصار
29 | خطأ في أثناء تحميل الأيقونات
30 | خطأ: مورد الأيقونة غير صالح
31 | خطأ: نسق الأيقونة غير صالح
32 | الحزمة ليس لديها نشاط افتراضي - حاول تحديد واحد
33 | لا يدعم مشغل الحالي \"تثبيت الاختصار\". غير قادر على إنشاء الاختصار.
34 | تحذير: ربما لا تتوفر امتيازات الجذر على هذا الجهاز.
35 | اسم المكون غير صالح أو يحتمل أن يكون ضارًا: %s
36 | رمز الخطأ في إرجاع الأمر: %d، الناتج: %s
37 | عرض الرمز البرمجي الأساس
38 | رمز المصدر لهذا التطبيق متاح للقراءة والتعديل على GitHub. لا تتردد في إرسال طلبات السحب مع التحسينات و الأخطاء.
39 | ساعدني في الترجمة!
40 | إذا كنت تستمتع بمشغل النشاط، يرجى النظر في ترجمة التطبيق إلى لغتك.
41 | أبلغ عن خطأ ما
42 | إذا كان لديك أي اقتراحات أو مشكلات، يرجى الإبلاغ عنها في مشروعنا على GitHub.
43 | فلتر...
44 | حزمة/إجراء
45 | الإعدادات
46 | إخفاء الأنشطة الخاصة
47 | إخفاء الأنشطة الخاصة (غير المصدرة والمعطلة) التي لا يمكن بدؤها بدون الوصول إلى الجذر
48 | السماح للجذر
49 | السماح بتشغيل الأنشطة الخاصة باستخدام امتيازات الجذر
50 | اللغة
51 | السمة
52 | الإعدادات الإفتراضية
53 | سمة فاتحة
54 | سمة مظلمة
55 |
56 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-bg-rBG/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Launches hidden activities and creates shortcuts for installed apps
4 | Всички дейности
5 | Опровержение
6 | Pick an icon
7 | Loading…
8 | Use this software at your own risk. Some apps might not behave as expected when their activities are launched in the wrong context leading to data loss or even worse. You have been warned. Do you understand this and still want to use this software?
9 | Launch activity
10 | Launch activity as root
11 | Създай пряк път
12 | Create shortcut as root
13 | Edit shortcut
14 | Name
15 | Package
16 | Class
17 | Icon
18 | Menu
19 | private
20 | As root
21 | Starting activity: %s
22 | Starting application: %s
23 | Creating activity shortcut for %s
24 | Creating application shortcut for %s
25 | Error
26 | Error loading task list
27 | Error creating shortcut
28 | Error loading icons
29 | Error: invalid icon resource
30 | Error: invalid icon format
31 | Package does not have a default activity - try to select one explicitly
32 | Current launcher does not support \"PinShortcut\". Unable to create shortcut.
33 | Warning: Root privileges are probably not available on this device.
34 | Invalid or potentially harmful component name: %s
35 | Command returned error code: %d, output: %s
36 | View source code
37 | The source code of this App is available for reading and modifying on GitHub. Feel free to send us pull requests with improvements and bugfixes.
38 | Help translate
39 | If you are enjoying Activity Launcher, please consider translating the App into your language.
40 | Report a problem
41 | Please submit your suggestions or issues on our GitHub project page.
42 | Filter…
43 | package/action
44 | Settings
45 | Hide private activities
46 | Hide private (unexported and disabled) activities, that cannot be started without root access
47 | Enable privileged mode
48 | Allow launching private activities by using root privileges
49 | Language
50 | Theme
51 | System Default
52 | Light Theme
53 | Dark Theme
54 |
55 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-ca-rES/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Launches hidden activities and creates shortcuts for installed apps
4 | Totes les activitats
5 | Disclaimer
6 | Pick an icon
7 | Loading…
8 | Use this software at your own risk. Some apps might not behave as expected when their activities are launched in the wrong context leading to data loss or even worse. You have been warned. Do you understand this and still want to use this software?
9 | Launch activity
10 | Launch activity as root
11 | Crear una drecera
12 | Create shortcut as root
13 | Afegeix una drecera
14 | Nom
15 | Paquet
16 | Classe
17 | Icona:
18 | Menu
19 | private
20 | As root
21 | Starting activity: %s
22 | Starting application: %s
23 | Creating application shortcut for %s
24 | Creating application shortcut for %s
25 | Error
26 | Error loading task list
27 | Error creant drecera
28 | Error loading icons
29 | Error: invalid icon resource
30 | Error: invalid icon format
31 | Package does not have a default activity - try to select one explicitly
32 | El Launcher actual no pot soportar \"PinDrecera\".
33 | Incapaç de crear la drecera
34 | Warning: Root privileges are probably not available on this device.
35 | Invalid or potentially harmful component name: %s
36 | Command returned error code: %d, output: %s
37 | View Sourcecode
38 | The source code of this App is available for reading and modifying on GitHub. Feel free to send us pull requests with improvements and bugfixes.
39 | Ajuda\'ns a traduir!
40 | If you are enjoying Activity Launcher, please consider translating the App into your language.
41 | Comunicar un problema
42 | Please submit your suggestions or issues on our GitHub project page.
43 | Filter…
44 | package/action
45 | Settings
46 | Hide private activities
47 | Hide private (unexported and disabled) activities, that cannot be started without root access
48 | Enable privileged mode
49 | Allow launching private activities by using root privileges
50 | Language
51 | Theme
52 | System Default
53 | Light Theme
54 | Dark Theme
55 |
56 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-cs-rCZ/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Spouští skryté aktivity a\u00a0vytváří zástupce pro nainstalované aplikace
4 | Všechny aktivity
5 | Odmítnutí odpovědnosti
6 | Vyberte ikonu
7 | Načítaní…
8 | Tento software používáte na vlastní riziko. Některé aplikace se nemusí chovat podle očekávání, když jsou jejich aktivity spuštěny ve špatném kontextu, což může vést ke ztrátě dat nebo k\u00a0něčemu ještě horšímu. Byli jste varováni. Rozumíte výše uvedenému a\u00a0přesto tento software chcete používat?
9 | Spustit aktivitu
10 | Spustit aktivitu s\u00a0právy root
11 | Vytvořit zástupce
12 | Vytvořit zástupce jako root
13 | Upravit zástupce
14 | Název
15 | Balíček
16 | Třída
17 | Ikona
18 | Menu
19 | soukromé
20 | Jako root
21 | Spouštění aktivity: %s
22 | Spouštění aplikace: %s
23 | Vytváření zástupce aktivity pro %s
24 | Vytváření zástupce aplikace pro %s
25 | Chyba
26 | Chyba při načítání seznamu úloh
27 | Chyba při vytváření zástupce
28 | Chyba při načítání ikon
29 | Chyba: neplatný zdroj ikony
30 | Chyba: neplatný formát ikony
31 | Balíček nemá výchozí aktivitu. Zkuste jednu vybrat explicitně
32 | Aktuální spouštěč nepodporuje „PinShortcut“ (Připnutí zástupce). Nelze vytvořit zástupce.
33 | Varování: Oprávnění root pravděpodobně nejsou na tomto zařízení k\u00a0dispozici.
34 | Neplatný nebo potenciálně škodlivý název komponentu: %s
35 | Příkaz vrátil chybový kód: %d, výstup: %s
36 | Zobrazit zdrojový kód
37 | Zdrojový kód této aplikace je k\u00a0dispozici pro čtení a\u00a0úpravy na GitHubu. Neváhejte nám posílat pull requests s\u00a0vylepšeními a\u00a0opravami chyb.
38 | Pomozte s\u00a0překladem!
39 | Pokud se vám Activity Launcher líbí, zvažte prosím překlad aplikace do vašeho jazyka.
40 | Nahlásit problém
41 | Pokud máte jakékoliv návrhy nebo problémy, nahlaste je v\u00a0našem projektu na GitHubu.
42 | Filtrovat…
43 | balíček/akce
44 | Nastavení
45 | Skrýt soukromé aktivity
46 | Skrýt soukromé (neexportované a\u00a0zakázané) aktivity, které nelze spustit bez root přístupu
47 | Povolit root
48 | Povolit spouštění soukromých aktivit pomocí root oprávnění
49 | Jazyk
50 | Motiv
51 | Výchozí nastavení systému
52 | Světlý motiv
53 | Tmavý motiv
54 |
55 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-da-rDK/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Åbner skjulte aktiviteter og opretter genveje til installerede apps
4 | Alle aktiviteter
5 | Ansvarsfraskrivelse
6 | Vælg et ikon
7 | Indlæser…
8 | Denne software benyttes på eget ansvar. Visse apps kan opføre sig uhensigtsmæssigt, når deres aktiviteter startes i en ukorrekt kontekst, hvilket kan betyde tab af data eller værre. Du er hermed advaret. Vil du fortsat benytte denne software?
9 | Start aktivitet
10 | Start aktivitet som root
11 | Opret genvej
12 | Opret genvej som root
13 | Redigér genvej
14 | Navn
15 | Pakke
16 | Klasse
17 | Ikon
18 | Menu
19 | privat
20 | Som root
21 | Starter aktivitet: %s
22 | Start applikation: %s
23 | Opretter aktivitetsgenvej til %s
24 | Opretter app-genvej til %s
25 | Fejl
26 | Fejl under indlæsning af opgavelisten
27 | Fejl ved oprettelse af genvej
28 | Fejl ved indlæsning af ikoner
29 | Fejl: Ugyldig ikonressource
30 | Fejl: Ugyldigt ikonformat
31 | Pakken har ikke en standardaktivitet - vælg én bestemt
32 | Aktuel launcher understøtter ikke \"FastgørGenvej\". Kan ikke oprette genvej.
33 | Advarsel: Rodrettigheder er sandsynligvis utilgængelige på denne enhed.
34 | Ugyldigt eller potentielt skadeligt komponentnavn: %s
35 | Kommando returnerede fejlkode: %d, output: %s
36 | Vis kildekode
37 | Denne Apps kildekoden kan læses og ændres på GitHub. Send os gerne pull requests med forbedringer og fejlrettelser.
38 | Hjælp med oversættelse!
39 | Synes man om Activity Launcher, så overvej gerne at oversætte den til dit sprog.
40 | Rapportér et problem
41 | Har man forslag/problemer, bedes disse indsendt/anmeldt via vores projekt på GitHub.
42 | Filtrér...
43 | pakke/handling
44 | Indstillinger
45 | Skjul private aktiviteter
46 | Skjul private (ikke-eksporterede og deaktiverede) aktiviteter, som ikke kan startes uden root-adgang
47 | Tillad root-adgang
48 | Tillad start af private aktiviteter vha. root-privilegier
49 | Sprog
50 | Tema
51 | Systemstandard
52 | Lyst tema
53 | Mørkt tema
54 |
55 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-en-rGB/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Launches hidden activities and creates shortcuts for installed apps
4 | Activities
5 | Disclaimer
6 | Pick an icon
7 | Loading…
8 | Use this software at your own risk. Some apps might not behave as expected when their activities are launched in the wrong context leading to data loss or even worse. You have been warned. Do you understand this and still want to use this software?
9 | Launch activity
10 | Launch activity as root
11 | Create shortcut
12 | Create shortcut as root
13 | Edit shortcut
14 | Name
15 | Package
16 | Class
17 | Icon
18 | Menu
19 | private
20 | As root
21 | Starting activity: %s
22 | Starting application: %s
23 | Creating activity shortcut for %s
24 | Creating application shortcut for %s
25 | Error
26 | Error loading task list
27 | Error creating shortcut
28 | Error loading icons
29 | Error: invalid icon resource
30 | Error: invalid icon format
31 | Package does not have a default activity - try to select one explicitly
32 | Current launcher does not support \"PinShortcut\". Unable to create shortcut.
33 | Warning: Root privileges are probably not available on this device.
34 | Invalid or potentially harmful component name: %s
35 | Command returned error code: %d, output: %s
36 | View source code
37 | The source code of this App is available for reading and modifying on GitHub. Feel free to send us pull requests with improvements and bugfixes.
38 | Help translate!
39 | If you are enjoying Activity Launcher, please consider translating the App into your language.
40 | Report a problem
41 | Please submit your suggestions or issues on our GitHub project page.
42 | Filter...
43 | package/action
44 | Settings
45 | Hide private activities
46 | Hide private (unexported and disabled) activities, that cannot be started without root access
47 | Enable privileged mode
48 | Allow launching private activities by using root privileges
49 | Language
50 | Theme
51 | System Default
52 | Light Theme
53 | Dark Theme
54 |
55 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-en-rUS/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Launches hidden activities and creates shortcuts for installed apps
4 | All activities
5 | Disclaimer
6 | Pick an icon
7 | Loading…
8 | Use this software at your own risk. Some apps might not behave as expected when their activities are launched in the wrong context leading to data loss or even worse. You have been warned. Do you understand this and still want to use this software?
9 | Launch activity
10 | Launch activity as root
11 | Create shortcut
12 | Create shortcut as root
13 | Edit shortcut
14 | Name
15 | Package
16 | Class
17 | Icon
18 | Menu
19 | private
20 | As root
21 | Starting activity: %s
22 | Starting application: %s
23 | Creating activity shortcut for %s
24 | Creating application shortcut for %s
25 | Error
26 | Error loading task list
27 | Error creating shortcut
28 | Error loading icons
29 | Error: invalid icon resource
30 | Error: invalid icon format
31 | Package does not have a default activity - try to select one explicitly
32 | Current launcher does not support \"PinShortcut\". Unable to create shortcut.
33 | Warning: Root privileges are probably not available on this device.
34 | Invalid or potentially harmful component name: %s
35 | Command returned error code: %d, output: %s
36 | View source code
37 | The source code of this App is available for reading and modifying on GitHub. Feel free to send us pull requests with improvements and bugfixes.
38 | Help translate!
39 | If you are enjoying Activity Launcher, please consider translating the App into your language.
40 | Report a problem
41 | Please submit your suggestions or issues on our GitHub project page.
42 | Filter...
43 | package/action
44 | Settings
45 | Hide private activities
46 | Hide private (unexported and disabled) activities, that cannot be started without root access
47 | Enable privileged mode
48 | Allow launching private activities by using root privileges
49 | Language
50 | Theme
51 | System Default
52 | Light Theme
53 | Dark Theme
54 |
55 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-fa-rIR/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | اکتیویتی لانچر
4 | اکتیویتیهای مخفی را نمایش میدهد و برای برنامههای نصب شده میانبر درست میکند
5 | همهٔ اکتیویتیها
6 | تکذیبنامه
7 | یک آیکون انتخاب کن
8 | بارگیری…
9 | Use this software at your own risk. Some apps might not behave as expected when their activities are launched in the wrong context leading to data loss or even worse. You have been warned. Do you understand this and still want to use this software?
10 | Launch activity
11 | Launch activity as root
12 | ایجاد میانبر
13 | Create shortcut as root
14 | ویرایش میانبر
15 | نام
16 | بسته
17 | کلاس
18 | آیکون
19 | منو
20 | خصوصی
21 | بهعنوان root
22 | Starting activity: %s
23 | Starting application: %s
24 | Creating activity shortcut for %s
25 | Creating application shortcut for %s
26 | خطا
27 | Error loading task list
28 | Error creating shortcut
29 | Error loading icons
30 | Error: invalid icon resource
31 | Error: invalid icon format
32 | Package does not have a default activity - try to select one explicitly
33 | Current launcher does not support \"PinShortcut\". Unable to create shortcut.
34 | Warning: Root privileges are probably not available on this device.
35 | Invalid or potentially harmful component name: %s
36 | Command returned error code: %d, output: %s
37 | View source code
38 | The source code of this App is available for reading and modifying on GitHub. Feel free to send us pull requests with improvements and bugfixes.
39 | Help translate
40 | If you are enjoying Activity Launcher, please consider translating the App into your language.
41 | گزارش مشکل
42 | Please submit your suggestions or issues on our GitHub project page.
43 | Filter…
44 | package/action
45 | تنظيمات
46 | Hide private activities
47 | Hide private (unexported and disabled) activities, that cannot be started without root access
48 | Enable privileged mode
49 | Allow launching private activities by using root privileges
50 | زبان
51 | پوسته
52 | پیشفرض سیستم
53 | پوسته روشن
54 | پوسته تاریک
55 |
56 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-fi-rFI/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Launches hidden activities and creates shortcuts for installed apps
4 | Kaikki toiminnot
5 | Vastuuvapauslauseke
6 | Valitse ikoni
7 | Ladataan...
8 | Käytä tätä sovellusta omalla vastuullasi. Jotkut sovellukset ei välttämättä toimi odotetulla tavalla, kun sovellusten toiminta on käynnistetty väärin se voi johtaa tietojen menetykseen tai pahempaan. Sinua on varoitettu. Ymmärrätkö sinä ja haluat silti käyttää tätä sovellusta?
9 | Käynnistä toiminta
10 | Launch activity as root
11 | Luo pikakuvake
12 | Create shortcut as root
13 | Muokkaa pikakuvaketta
14 | Nimi
15 | Paketti
16 | Luokka
17 | Ikoni
18 | Menu
19 | private
20 | As root
21 | Aloitetaan toimintaa: %s
22 | Käynnistetään sovellusta: %s
23 | Luodaan pikakuvaketta sovellukselle: %s
24 | Luodaan pikakuvaketta sovellukselle: %s
25 | Virhe
26 | Virhe ladattaessa tehtäväluetteloa
27 | Error creating shortcut
28 | Virhe ladattaessa ikoneita
29 | Virhe: Virheellinen ikonin resurssi
30 | Virhe: Virheellinen ikonin formaatti
31 | Package does not have a default activity - try to select one explicitly
32 | Nykyinen käynnistysohjelma ei tue \"PinShortcut\". Oikopolkua ei voi luoda.
33 | Warning: Root privileges are probably not available on this device.
34 | Invalid or potentially harmful component name: %s
35 | Command returned error code: %d, output: %s
36 | Näytä lähdekoodi
37 | The source code of this App is available for reading and modifying on GitHub. Feel free to send us pull requests with improvements and bugfixes.
38 | Auta kääntämisessä!
39 | If you are enjoying Activity Launcher, please consider translating the App into your language.
40 | Ilmoita ongelmasta
41 | Please submit your suggestions or issues on our GitHub project page.
42 | Filter…
43 | package/action
44 | Settings
45 | Hide private activities
46 | Hide private (unexported and disabled) activities, that cannot be started without root access
47 | Enable privileged mode
48 | Allow launching private activities by using root privileges
49 | Language
50 | Theme
51 | System Default
52 | Light Theme
53 | Dark Theme
54 |
55 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-hi-rIN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | एक्टिविटी लॉन्चर
4 | छुपे हुए फीचर्स को चालू करें तथा ऐप्स के लिए शॉर्टकट्स बनाएं
5 | सभी गतिविधियां
6 | स्वीकरण व अस्वीकरण
7 | आइकॉन चयन
8 | लोडिंग…
9 | इस सॉफ़्टवेयर का उपयोग अपने जोखिम पर करें। हो सकता है कि कुछ ऐप उम्मीद के मुताबिक व्यवहार न करें, जब उनकी गतिविधियों को लॉन्च किया जाता है, जिससे डेटा हानि या इससे भी बदतर हो जाती है। आपको चेतावनी दी गई है। क्या आप इसे समझते हैं और अभी भी इस सॉफ़्टवेयर का उपयोग करना चाहते हैं?
10 | गतिविधि शुरू करे
11 | रूट(Root) रूप में शुरू करें
12 | शॉर्टकट बनाएं
13 | रूट के रूप में शॉर्टकट बनाएं
14 | शॉर्टकट एडिट करें
15 | नाम
16 | पैकेज
17 | वर्ग(class)
18 | आइकॉन
19 | मेन्यू
20 | निजी
21 | रूट (root) के रूप में
22 | %s गतिविधि शुरू हो रही है
23 | %s एप्लीकेशन शुरू हो रही है
24 | %s के लिए एक्टिविटी शॉर्टकट शुरू हो रहा
25 | %s एप्लिकेशन के लिए शॉर्टकट बनाया जा रहा है
26 | असफल(Error)
27 | कार्य सूची लोड करने में असफल(error)
28 | शॉर्टकट सृजन असफल
29 | आइकॉन लोड करने में असफल
30 | Error: अमान्य/अवैध आइकन संसाधन(resource)
31 | Error: आइकन का फॉर्मेट वैध नहीं
32 | पैकेज की कोई निश्चित गतिविधि नही है कृपया इनमे से चुनें
33 | वर्तमान लांचर \"पिनशॉर्टकट\" को सपोर्ट नहीं करता है। शॉर्टकट बनाने में असमर्थ।
34 | चेतावनी: रूट (root) विशेषाधिकार शायद इस डिवाइस पर उपलब्ध नहीं हैं।
35 | अमान्य या संभावित रूप से हानिकारक अंश नाम: %s
36 | कमांड ने त्रुटि कोड(error code) लौटाया: %d, आउटपुट: %s
37 | सोर्स कोड देखें
38 | इस ऐप का सोर्स कोड GitHub पर पढ़ने और संशोधित करने के लिए उपलब्ध है। बेझिझक हमें सुधार और बग फिक्स के साथ पुल अनुरोध (pull requests) भेजें।
39 | अनुवाद करने में हमारी मदद करें।
40 | यदि आप गतिविधि लांचर का आनंद ले रहे हैं, तो कृपया ऐप का अपनी भाषा में अनुवाद करने पर विचार करें।
41 | समस्या की रिपोर्ट करें
42 | कृपया अपने सुझाव या मुद्दे हमारे GitHub प्रोजेक्ट पेज पर सबमिट करें।
43 | फ़िल्टर...
44 | पैकेज/गतिविधि
45 | सेटिंग्स
46 | निजी गतिविधियों को छुपाएं
47 | निजी (निर्यातित और अक्षम) गतिविधियों को छिपाएं, जिन्हें रूट एक्सेस के बिना शुरू नहीं किया जा सकता
48 | विशेषाधिकार मोड चालू करें
49 | रूट विशेषाधिकारों का उपयोग करके निजी गतिविधियों को शुरू करने की अनुमति दें
50 | भाषा
51 | थीम
52 | सिस्टम डिफ़ॉल्ट
53 | लाइट थीम
54 | डार्क थीम
55 |
56 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-iw-rIL/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | משגר פעילויות
4 | פתיחת פעילויות מוסתרות ויצירת קיצורי דרך ליישומים מותקנים
5 | כל הפעילויות
6 | כתב ויתור
7 | בחר סמל
8 | טוען...
9 | השתמש בתוכנה זו באחריותך בלבד. אפליקציות מסוימות עלולות לא לפעול כצפוי, ואף עלול להוביל לאובדן נתונים.
10 | האם אתה מבין ועדיין רוצה להשתמש בתוכנה זו?
11 | בחר פעילות
12 | Launch activity as root
13 | צור קיצור דרך
14 | Create shortcut as root
15 | ערוך קיצור דרך
16 | שם
17 | חבילה
18 | מחלקה
19 | סמל
20 | תפריט
21 | פרטי
22 | As root
23 | מתחיל פעילות : %s
24 | מפעיל אפליקציה: %s
25 | יוצר קיצור לאפליקציה %s
26 | יוצר קיצור לאפליקציה %s
27 | שגיאה
28 | שגיאה בעת טעינת רשימת משימות
29 | שגיאה ביצירת קיצור דרך
30 | שגיאה בטעינת סמלים
31 | שגיאה: סמל לא חוקי
32 | שגיאה: תבנית לא חוקית של הסמל
33 | חבילה אין פעילות ברירת מחדל - נסה לבחור אחת
34 | משגר היישומים הנוכחי לא תומך ב-\"PinShortcut\". לא יכול ליצור קיצור.
35 | Warning: Root privileges are probably not available on this device.
36 | Invalid or potentially harmful component name: %s
37 | Command returned error code: %d, output: %s
38 | צפה בקוד המקור
39 | The source code of this App is available for reading and modifying on GitHub. Feel free to send us pull requests with improvements and bugfixes.
40 | תעזור בתרגום האפליקציה!
41 | If you are enjoying Activity Launcher, please consider translating the App into your language.
42 | דווח על בעיה
43 | Please submit your suggestions or issues on our GitHub project page.
44 | סנן
45 | חבילה/פעולה
46 | Settings
47 | Hide private activities
48 | Hide private (unexported and disabled) activities, that cannot be started without root access
49 | Enable privileged mode
50 | Allow launching private activities by using root privileges
51 | Language
52 | Theme
53 | System Default
54 | Light Theme
55 | Dark Theme
56 |
57 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-ja-rJP/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 非表示のアクティビティを起動し、インストールされたアプリのショートカットを作成します
4 | すべてのアクティビティ
5 | 免責事項
6 | アイコンを選ぶ
7 | 読み込み中…
8 | あなたの自己責任でこのソフトウェアを使用してください。 アプリによっては、アクティビティが間違ったコンテキストで起動されたときに期待どおりに動作しない場合があり、データが失われたり悪影響を受ける可能性があります。 これは警告です。これを理解した上で、このソフトウェアを使用しますか?
9 | アクティビティを起動
10 | root としてアクティビティを起動
11 | ショートカットを作成
12 | root としてショートカットを作成
13 | ショートカットを編集
14 | 名前
15 | パッケージ
16 | クラス
17 | アイコン
18 | メニュー
19 | プライベート
20 | root として
21 | アクティビティの開始: %s
22 | アプリケーションの起動: %s
23 | %s のアクティビティのショートカットを作成しています
24 | %s のアプリケーションのショートカットを作成しています
25 | エラー
26 | タスクリストの読み込みエラー
27 | ショートカットの作成エラー
28 | アイコンの読み込みエラー
29 | エラー: 無効なアイコン リソース
30 | エラー: 無効なアイコン形式
31 | パッケージにデフォルトのアクティビティがありません。明示的に選択してください
32 | 現在のランチャーは \"PinShortcut\" をサポートしていません。ショートカットを作成できません。
33 | 警告: このデバイスではルート権限が使用できない可能性があります。
34 | 無効または有害なコンポーネント名の可能性: %s
35 | コマンドがエラーコードを返しました: %d, 出力: %s
36 | ソースコードを表示
37 | このアプリのソースコードはGitHub上で見たり変更したりすることができます。改善点やバグ修正があれば、プルリクエストをお気軽に送信してください。
38 | 翻訳を手伝ってください!
39 | アクティビティランチャーを楽しんでいる場合は、このアプリをあなたの言語に翻訳することもご検討ください。
40 | 問題を報告
41 | GitHub上のプロジェクトページで提案や問題点を提出してください。
42 | フィルター...
43 | パッケージ/アクション
44 | 設定
45 | プライベートアクティビティを表示しない
46 | ルートアクセスなしで起動できない(エクスポートされておらず、無効になっている)プライベートアクティビティを非表示にする
47 | 特権モードを有効にする
48 | ルート権限を使用してプライベートアクティビティを起動することを許可する
49 | 言語
50 | テーマ
51 | システムの設定に従う
52 | 明るい(ライト)テーマ
53 | 暗い(ダーク)テーマ
54 |
55 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-kmr-rTR/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Launches hidden activities and creates shortcuts for installed apps
4 | All activities
5 | Disclaimer
6 | Pick an icon
7 | Loading…
8 | Use this software at your own risk. Some apps might not behave as expected when their activities are launched in the wrong context leading to data loss or even worse. You have been warned. Do you understand this and still want to use this software?
9 | Launch activity
10 | Launch activity as root
11 | Create shortcut
12 | Create shortcut as root
13 | Edit shortcut
14 | Name
15 | Package
16 | Class
17 | Icon
18 | Menu
19 | private
20 | As root
21 | Starting activity: %s
22 | Starting application: %s
23 | Creating activity shortcut for %s
24 | Creating application shortcut for %s
25 | Error
26 | Error loading task list
27 | Error creating shortcut
28 | Error loading icons
29 | Error: invalid icon resource
30 | Error: invalid icon format
31 | Package does not have a default activity - try to select one explicitly
32 | Current launcher does not support \"PinShortcut\". Unable to create shortcut.
33 | Warning: Root privileges are probably not available on this device.
34 | Invalid or potentially harmful component name: %s
35 | Command returned error code: %d, output: %s
36 | View source code
37 | The source code of this App is available for reading and modifying on GitHub. Feel free to send us pull requests with improvements and bugfixes.
38 | Help translate
39 | If you are enjoying Activity Launcher, please consider translating the App into your language.
40 | Report a problem
41 | Please submit your suggestions or issues on our GitHub project page.
42 | Filter…
43 | package/action
44 | Settings
45 | Hide private activities
46 | Hide private (unexported and disabled) activities, that cannot be started without root access
47 | Enable privileged mode
48 | Allow launching private activities by using root privileges
49 | Language
50 | Theme
51 | System Default
52 | Light Theme
53 | Dark Theme
54 |
55 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-ko-rKR/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 액티비티 런처
4 | 숨겨진 액티비티를 시작하고 설치된 앱에 대한 바로 가기를 만듭니다.
5 | 모든 액티비티
6 | 경고
7 | 아이콘 선택
8 | 불러오는 중...
9 | 이 소프트웨어를 사용하는 동안 발생하는 모든 문제의 책임은 사용자에게 있습니다. 일부 앱들은 예상대로 작동하지 않을 수 있고, 액티비티가 잘못된 컨텍스트에서 실행되는 경우 데이터가 손실될 수도 있음을 사용자에게 경고합니다. 이 애플리케이션의 위험성을 숙지하였고, 계속 진행하시길 원하십니까?
10 | 액티비티 시작
11 | 루트 권한으로 액티비티 시작
12 | 바로가기 생성
13 | 루트 권한으로 바로가기 생성
14 | 바로가기 편집
15 | 이름
16 | 패키지
17 | 종류
18 | 아이콘
19 | 메뉴
20 | 비활성
21 | 루트 권한
22 | 액티비티를 시작하는 중: %s
23 | 애플리케이션을 시작하는 중: %s
24 | 액티비티 바로가기 생성 %s
25 | 애플리케이션 바로가기 생성 %s
26 | 오류
27 | 작업 목록을 불러오는 중 오류 발생
28 | 바로가기 만들기에 오류발생
29 | 아이콘을 불러오는 중 오류 발생
30 | 오류: 아이콘 리소스가 잘못됨
31 | 오류: 잘못된 아이콘 형식
32 | 패키지에 기본 액티비티가 없습니다. 명시적으로 하나를 선택하십시오.
33 | 현재 런처가 \'PinShortcut\' 을 지원하지 않아 바로가기를 생성할 수 없습니다.
34 | 주의: 이 기기에서는 루트 권한을 이용할 수 없는 것으로 보입니다.
35 | 유효하지 않거나 잠재적으로 위험한 구성 요소 이름: %s
36 | 명령어가 오류 코드를 반환함: %d, 출력: %s
37 | 소스 코드 보기
38 | 본 앱의 소스코드는 GitHub에서 읽거나 수정할 수 있습니다. 개선 사항이나 버그 수정 사항이 있는 경우 편하게 풀 리퀘스트를 보내십시오.
39 | 번역을 도와주십시오!
40 | 액티비티 런처가 마음에 든다면, 앱 번역을 고려하여 주세요.
41 | 문제 신고
42 | 제안이나 이슈가 있다면, GitHub 내 저희 프로젝트로 신고해주십시오.
43 | 필터
44 | 패키지/동작
45 | 설정
46 | 비활성 액티비티 숨김
47 | 루트 권한 없이는 실행할 수 없는, 비활성(출시되지 않은, 숨은) 액티비티를 숨김
48 | 루트 허용
49 | 루트 권한을 이용하여 비활성 액티비티 실행 허용
50 | 언어
51 | 테마
52 | 시스템 기본값
53 | 밝은 테마
54 | 어두운 테마
55 |
56 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-nl-rNL/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Activiteit Launcher
4 | Launches hidden activities and creates shortcuts for installed apps
5 | Alle activiteiten
6 | Disclaimer
7 | Kies een icoon
8 | Laden…
9 | Gebruik van deze software is op eigen risico. Sommige apps kunnen zich ongewenst gedragen wanneer hun activiteiten op de verkeerde manier worden gestart, wat leidt tot gegevensverlies of erger. U bent gewaarschuwd, begrijpt u risico\'s en wilt u doorgaan?
10 | Start activiteit
11 | Launch activity as root
12 | Maak snelkoppeling
13 | Create shortcut as root
14 | Bewerk snelkoppeling
15 | Naam
16 | Pakket
17 | Class
18 | Icoon
19 | Menu
20 | private
21 | As root
22 | Activiteit beginnen: %s
23 | Starten applicatie: %s
24 | Activiteiten snelkoppeling maken voor %s
25 | Applicatie snelkoppeling maken voor %s
26 | Fout
27 | Fout bij laden takenlijst
28 | Snelkoppeling maken fout
29 | Fout bij het laden van de iconen
30 | Fout: ongeldige icoon bron
31 | Fout: ongeldig icoon formaat
32 | Package does not have a default activity - try to select one explicitly
33 | Current launcher does not support \"PinShortcut\". Unable to create shortcut.
34 | Warning: Root privileges are probably not available on this device.
35 | Invalid or potentially harmful component name: %s
36 | Command returned error code: %d, output: %s
37 | Bekijk broncode
38 | The source code of this App is available for reading and modifying on GitHub. Feel free to send us pull requests with improvements and bugfixes.
39 | Help met vertalen!
40 | If you are enjoying Activity Launcher, please consider translating the App into your language.
41 | Meld een probleem
42 | Please submit your suggestions or issues on our GitHub project page.
43 | Filter…
44 | package/action
45 | Settings
46 | Hide private activities
47 | Hide private (unexported and disabled) activities, that cannot be started without root access
48 | Enable privileged mode
49 | Allow launching private activities by using root privileges
50 | Language
51 | Theme
52 | System Default
53 | Light Theme
54 | Dark Theme
55 |
56 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-no-rNO/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Aktivitets opner
4 | Launches hidden activities and creates shortcuts for installed apps
5 | Alle aktiviteter
6 | Ansvarsfraskrivelse
7 | Velg et ikon
8 | Laster…
9 | Bruk denne programvare på eget ansvar. Noen programmer kan ikke fungere som forventet når deres aktiviteter er lansert i feil sammenheng fører til tap av data eller enda verre. Du har blitt advart. Du forstår dette og fortsatt ønsker å bruke denne programvaren?
10 | Start aktivitet
11 | Launch activity as root
12 | Opprett snarvei
13 | Create shortcut as root
14 | Sette snarveien
15 | Navn
16 | Pakke
17 | Klasse
18 | Ikon
19 | Menu
20 | private
21 | As root
22 | Starter aktivitet: %s
23 | Starter programmet: %s
24 | Lager aktivitet snarvei for %s
25 | Opprette programsnarvei for %s
26 | Feil
27 | Feil under lasting av oppgaveliste
28 | Feil, lage snarvei
29 | Feil ved lasting av ikon
30 | Feil: Ugyldig ikon format
31 | Feil: Ugyldig ikon format
32 | Package does not have a default activity - try to select one explicitly
33 | Gjeldende bærerakett støtter ikke \"PinShortcut\". Kan ikke opprette snarvei.
34 | Warning: Root privileges are probably not available on this device.
35 | Invalid or potentially harmful component name: %s
36 | Command returned error code: %d, output: %s
37 | Vis kildekode
38 | The source code of this App is available for reading and modifying on GitHub. Feel free to send us pull requests with improvements and bugfixes.
39 | Hjelp til med oversettelse!
40 | If you are enjoying Activity Launcher, please consider translating the App into your language.
41 | Rapporter et problem
42 | Please submit your suggestions or issues on our GitHub project page.
43 | Filter…
44 | package/action
45 | Settings
46 | Hide private activities
47 | Hide private (unexported and disabled) activities, that cannot be started without root access
48 | Enable privileged mode
49 | Allow launching private activities by using root privileges
50 | Language
51 | Theme
52 | System Default
53 | Light Theme
54 | Dark Theme
55 |
56 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-pl-rPL/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Uruchamiacz aktywności
4 | Startuje ukryte działalności i tworzy skróty na ekranie głównym
5 | Wszystkie aktywności
6 | Uwaga
7 | Wybierz ikonę
8 | Wczytywanie …
9 | Korzystasz z tego programu na własne ryzyko. Niektóre aplikacje mogą nie działać zgodnie z oczekiwaniami, jeśli będą uruchamiane w złym kontekście. Może to prowadzić do utraty danych lub nawet gorzej. Zostałeś ostrzeżony. Czy rozumiesz to i mimo wszystko chcesz używać tego programu?
10 | Rozpocznij aktywność
11 | Uruchom aktywność jako root
12 | Utwórz skrót
13 | Utwórz skrót jako root
14 | Edytuj skrót
15 | Nazwa
16 | Pakiet
17 | Klasa
18 | Ikona
19 | Menu
20 | prywatne
21 | Jako root
22 | Rozpoczynanie aktywności: %s
23 | Uruchamianie aplikacji: %s
24 | Tworzenie skrótu aktywności dla %s
25 | Tworzenie skrótu aplikacji dla %s
26 | Błąd
27 | Błąd podczas ładowania listy zadań
28 | Błąd w tworzeniu skrótu
29 | Błąd podczas ładowania ikon
30 | Błąd: nieprawidłowy zasób ikony
31 | Błąd: nieprawidłowy format ikony
32 | Pakiet nie ma domyślnej aktywności - spróbuj wybrać jednoznacznie
33 | Obecny launcher nie wspiera \"PinShortcut\". Nie można utworzyć skrótu.
34 | Ostrzeżenie: Uprawnienia roota nie są dostępne na tym urządzeniu.
35 | Nieprawidłowa lub potencjalnie szkodliwa nazwa komponentu: %s
36 | Polecenie zwróciło kod błędu: %d, wyjście: %s
37 | Pokaż kod źródłowy
38 | Kod źródłowy tej aplikacji jest dostępny do czytania i modyfikowania na GitHub. Możesz wysłać nam pull requesty z poprawkami i poprawkami błędów.
39 | Pomóż w tłumaczeniu!
40 | Jeśli podoba Ci się Activity Launcher, rozważ tłumaczenie aplikacji na swój język.
41 | Zgłoś problem
42 | Jeśli masz jakieś sugestie lub problemy, zgłoś je do naszego projektu na GitHubie.
43 | Filtr...
44 | pakiet/akcja
45 | Ustawienia
46 | Ukryj aktywności prywatne
47 | Ukryj aktywności prywatne (niespodziewane i wyłączone), których nie można uruchomić bez dostępu do roota
48 | Zezwalaj na roota
49 | Zezwalaj na uruchamianie prywatnych aktywności przez korzystanie z uprawnień roota
50 | Język
51 | Motyw
52 | Domyślne systemowe
53 | Jasny motyw
54 | Ciemny motyw
55 |
56 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-pt-rBR/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Inicia atividades ocultas e cria atalhos para apps instalados
4 | Todas as atividades
5 | Aviso
6 | Escolha um ícone
7 | Carregando…
8 | Use este software por sua conta e risco. Alguns aplicativos podem não se comportar conforme o esperado quando suas atividades são iniciadas no contexto errado, levando à perda de dados ou até mesmo pior. Você foi avisado. Você entende isto e ainda quer usar este software?
9 | Iniciar atividade
10 | Iniciar atividade com root
11 | Criar atalho
12 | Criar atalho como root
13 | Editar atalho
14 | Nome:
15 | Pacote:
16 | Classe:
17 | Ícone:
18 | Menu
19 | privado
20 | Como root
21 | Iniciando atividade: \"%s\"
22 | Iniciando aplicação: \"%s\"
23 | Criando atalho de atividade para %s
24 | Criando atalho para \"%s\"
25 | Erro
26 | Erro ao carregar a lista de tarefas!
27 | Erro ao criar atalho
28 | Erro ao carregar ícones
29 | Erro: recurso de ícone inválido
30 | Erro: formato de ícone inválido
31 | O pacote não tem uma atividade padrão - tente selecionar um explicitamente
32 | O launcher atual não suporta \"PinShortcut\". Não foi possível criar atalho.
33 | Aviso: Os privilégios de Root provavelmente não estão disponíveis neste dispositivo.
34 | Nome de componente inválido ou potencialmente prejudicial: %s
35 | O comando retornou o código de erro: %d, saída: %s
36 | Exibir código fonte
37 | O código fonte deste App está disponível para leitura e modificação no GitHub. Sinta-se à vontade para nos enviar pull requests com melhorias e correções de bugs.
38 | Ajude a traduzir!
39 | Se você está gostando do Activity Launcher, considere traduzir o aplicativo para o seu idioma.
40 | Relatar um problema
41 | Se você tiver sugestões ou problemas, informe-os em nosso projeto no GitHub.
42 | Filtrar...
43 | pacote/ação
44 | Configurações
45 | Ocultar atividades privadas
46 | Ocultar atividades privadas (não exportadas e desativadas), que não podem ser iniciadas sem acesso root
47 | Ativar modo privilegiado
48 | Permitir a abertura de atividades privadas usando privilégios de root
49 | Idioma
50 | Tema
51 | Padrão do sistema
52 | Tema claro
53 | Tema escuro
54 |
55 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-pt-rPT/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Inicia atividades ocultas e cria atalhos para as aplicações instaladas
4 | Todas as atividades
5 | Aviso
6 | Escolha um ícone
7 | A carregar…
8 | Utilize este software ao seu próprio risco.
9 | Algumas aplicações podem comportar-se de forma inesperada quando as suas atividades são iniciadas em contexto diferente do esperado podendo levar à perda de dados, instabilidade ou pior. Pretende continuar?
10 | Iniciar atividade
11 | Iniciar atividade como root
12 | Criar atalho
13 | Criar atalho com o acesso ao Root
14 | Editar atalho
15 | Nome
16 | Pacote
17 | Identificador
18 | Ícone
19 | Menu
20 | Privado
21 | Como root
22 | A iniciar a atividade: %s
23 | A iniciar a aplicação: %s
24 | A criar atalho para a atividade %s
25 | A criar atalho para a aplicação %s
26 | Erro
27 | Erro ao carregar a lista de tarefas
28 | Erro ao criar atalho
29 | Erro ao carregar os ícones
30 | Erro: recurso de ícone inválido
31 | Erro: Formato de ícones inválido
32 | O pacote não tem uma atividade predefinida - tente selecionar uma explicitamente
33 | O launcher atual não suporta \"PinShortcut\". Não é possível criar atalhos.
34 | Aviso: Provavelmente os privilégios de Root não estão disponíveis neste dispositivo.
35 | Componente de nome invalido ou potencialmente nocivo: %s
36 | Código de erro retornado: %d, saída: %s
37 | Ver código-fonte
38 | O código fonte desta aplicação está disponível para leitura e modificação no GitHub. Sinta-se à vontade para nos enviar pull requests com melhorias e correções de bugs.
39 | Ajude a traduzir!
40 | Se está a gostar do Activity Launcher, por favor considere traduzir a aplicação para o seu idioma.
41 | Reportar problemas
42 | Caso tenha sugestões ou problemas, por favor reporte-os no nosso projeto no GitHub.
43 | Filtro
44 | Pacote/ação
45 | Definições
46 | Esconder atividades privadas
47 | Esconder atividades privadas (não exportadas e inativas) que não conseguem ser iniciadas sem acesso a Root
48 | Ativar modo privilegiado
49 | Permitir o início de atividades privadas com o uso de privilégios ao Root
50 | Idioma
51 | Tema
52 | Predefinição do Sistema
53 | Tema Claro
54 | Tema Escuro
55 |
56 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-ru-rRU/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Запускает скрытые действия и создает ярлыки для установленных приложений
4 | Все действия
5 | Отказ от ответственности
6 | Выберите иконку
7 | Загрузка…
8 | Используете это программное обеспечение на свой страх и риск. Некоторые приложения могут не работать так, как ожидалось, когда запускаются в неверном контексте, это может привести к потере данных или даже хуже. Вы были предупреждены. Вы понимаете это и все еще хотите использовать это программное обеспечение?
9 | Запустить
10 | Запустить от имени root
11 | Создать ярлык
12 | Создать ярлык (root)
13 | Изменить ярлык
14 | Имя
15 | Пакет
16 | Класс
17 | Иконка
18 | Меню
19 | приватный
20 | Root
21 | Запуск: %s
22 | Запуск приложения: %s
23 | Создание ярлыка действия для %s
24 | Создание ярлыка приложения для %s
25 | Ошибка
26 | Ошибка загрузки списка задач
27 | Ошибка создания ярлыка
28 | Ошибка загрузки иконок
29 | Ошибка: Недопустимый ресурс иконки
30 | Ошибка: Недопустимый формат иконки
31 | У пакета нет действия по умолчанию, установите его самостоятельно
32 | Нынешний лаунчер не поддерживает \"PinShortcut\". Невозможно создать ярлык.
33 | Предупреждение: Вероятно, на этом устройстве недоступны привилегии root.
34 | Недопустимое или потенциально опасное имя компонента: %s
35 | Команда вернула код ошибки: %d, результат: %s
36 | О приложении
37 | Просмотреть исходный код
38 | Исходный код приложения доступен для чтения и изменения на GitHub.
39 | Помогите с переводом!
40 | Если вам нравится Activity Launcher, рассмотрите возможность перевода приложения на ваш язык.
41 | Сообщить о проблеме
42 | Если у вас есть предложения или вопросы, сообщите о них в нашем проекте на GitHub.
43 | Фильтр…
44 | пакет/действие
45 | Настройки
46 | Скрыть приватные действия
47 | Скрыть приватные и отключеные действия, которые невозможно запустить без root-доступа
48 | Включить привилегированный режим
49 | Разрешить запуск приватных действий с использованием root-прав
50 | Язык
51 | Тема
52 | Системные настройки
53 | Светлая тема
54 | Тёмная тема
55 |
56 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-si-rLK/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | ක්රියාකාරකම් දියත්කරණය
4 | සැඟවුණු ක්රියාකාරකම් දියත් කරන අතර ස්ථාපිත යෙදුම් සඳහා කෙටිමං නිර්මාණය කරයි
5 | සියලුම ක්රියාකාරකම්
6 | අවවාදයයි
7 | අයිකනයක් අරගන්න
8 | පූරණය වෙමින්...
9 | මෙම මෘදුකාංගය ඔබේම අවදානමකින් භාවිතා කරන්න. සමහර යෙදුම් ඔවුන්ගේ වැරදි ක්රියාකාරකම් තුළ දියත් කරන විට බලාපොරොත්තු නොවූ දේ සිදු විය හැක. දත්ත නැතිවීමට හෝ ඊටත් වඩා හානි සිදු විය හැක. ඔබට අවවාද කර ඇත. ඔබට මෙය තේරෙන අතර තවමත් මෙම මෘදුකාංගය භාවිතා කිරීමට අවශ්යද?
10 | ක්රියාකාරකම දියත් කරන්න
11 | මූල ලෙස ක්රියාකාරකම් දියත් කරන්න
12 | කෙටිමඟ තනන්න
13 | මූල ලෙස කෙටිමං සාදන්න
14 | කෙටිමඟ සංස්කරණය කරන්න
15 | නම
16 | පැකේජය
17 | පන්තිය
18 | අයිකනය
19 | මෙනුව
20 | පෞද්ගලික
21 | මූල ලෙස
22 | ක්රියාකාරකම ආරම්භ කරමින්: %s
23 | යෙදුම ආරම්භ වෙමින්: %s
24 | සඳහා ක්රියාකාරකම් කෙටිමඟ නිර්මාණය කිරීම %s
25 | Creating application shortcut for %s
26 | දෝෂයකි
27 | කාර්ය ලැයිස්තුව පූරණය වීමේ දෝෂයකි
28 | කෙටි මග සෑදීමේ දෝෂයකි
29 | අයිකන පූරණය කිරීමේ දෝෂයකි
30 | දෝෂය: අයිකන සම්පත් සමඟ නොගැළපෙයි
31 | Error: invalid icon format
32 | පැකේජයේ පෙරනිමි ක්රියාකාරකමක් නොමැත - එකක් පැහැදිලිව තෝරා ගැනීමට උත්සාහ කරන්න
33 | වත්මන් දියත් කිරීම \"PinShortcut\" (කෙටිමඟ Pin කරන්න) හා සහය නොදක්වයි. කෙටිමඟ නිර්මාණය කළ නොහැක.
34 | අවවාදයයි: බොහෝ විට මෙම උපාංගයේ මූල වරප්රසාද ලබා ගත නොහැක.
35 | වලංගු නොවන හෝ හානිකර විය හැකි සංරචක නාමය: %s
36 | විධානය දෝෂ කේතය ලබා දුන්නේය: %d, ප්රතිදානය: %s
37 | මූලාශ්ර කේතය බලන්න
38 | මෙම යෙදුමේ මූල කේතය GitHub හි කියවීමට සහ වෙනස් කිරීමට ලබා ගත හැකිය. වැඩිදියුණු කිරීම් සහ දෝෂ නිවැරදි කිරීම් සමඟ අපට pull requests එවීමට නිදහස ඇත.
39 | පරිවර්තනයෙන් සහාය වන්න!
40 | ඔබ ක්රියාකාරකම් දියත්කරනය භුක්ති විඳින්නේ නම්, කරුණාකර යෙදුම ඔබේ භාෂාවට පරිවර්තනය කිරීම සලකා බලන්න.
41 | ගැටළුවක් වාර්තා කරන්න
42 | ඔබට කිසියම් යෝජනා හෝ ගැටළු ඇත්නම්, කරුණාකර GitHub හි අපගේ ව්යාපෘතියේ ඒවා වාර්තා කරන්න.
43 | පෙරහන...
44 | පැකේජය/ක්රියාව
45 | සැකසුම්
46 | පුද්ගලික ක්රියාකාරකම් සඟවන්න
47 | Hide private (unexported and disabled) activities, that cannot be started without root access
48 | මූල සඳහා ඉඩ දෙන්න
49 | Allow launching private activities by using root privileges
50 | භාෂාව
51 | තේමාව
52 | පද්ධති පෙරනිමිය
53 | එළිය තේමාව
54 | අඳුරු තේමාව
55 |
56 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-sk-rSK/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Launches hidden activities and creates shortcuts for installed apps
4 | Všetky aktivity
5 | Upozornenie
6 | Vyberte ikonu
7 | Načítavanie…
8 | Tento softvér používate na vlastné riziko. Niektoré aplikácie sa nemusia správať tak, ako očakávate, keď ich aktivity sú spúšťané so zlým obsahom, ktorý môže spôsobiť stratu údajov alebo ešte niečo horšie. Boli ste varovaní. Pochopili ste všetkému v tejto správe a stále chcete používať tento softvér?
9 | Spustiť aktivitu
10 | Launch activity as root
11 | Vytvoriť skratku
12 | Create shortcut as root
13 | Upraviť skratku
14 | Názov
15 | Balíček
16 | Trieda
17 | Ikona
18 | Menu
19 | private
20 | As root
21 | Spúšťanie aktivity: %s
22 | Spúšťanie aplikácie: %s
23 | Vytváranie odkazu aktivity pre %s
24 | Vytváranie odkazu aplikácie pre %s
25 | Chyba
26 | Chyba pri načítavaní zoznamu úloh
27 | Chyba pri vytváraní odkazu
28 | Chyba pri načítavaní ikony
29 | Chyba: neplatný zdroj ikony
30 | Chyba: neplatný formát ikony
31 | Package does not have a default activity - try to select one explicitly
32 | Aktuálny spúšťač nepodporuje funkciu „PinShortcut“. Skratku nie je možné vytvoriť.
33 | Warning: Root privileges are probably not available on this device.
34 | Invalid or potentially harmful component name: %s
35 | Command returned error code: %d, output: %s
36 | Zobraziť zdrojový kód
37 | The source code of this App is available for reading and modifying on GitHub. Feel free to send us pull requests with improvements and bugfixes.
38 | Pomôcť s prekladaním!
39 | If you are enjoying Activity Launcher, please consider translating the App into your language.
40 | Nahlásiť problém
41 | Please submit your suggestions or issues on our GitHub project page.
42 | Filter…
43 | package/action
44 | Settings
45 | Hide private activities
46 | Hide private (unexported and disabled) activities, that cannot be started without root access
47 | Enable privileged mode
48 | Allow launching private activities by using root privileges
49 | Language
50 | Theme
51 | System Default
52 | Light Theme
53 | Dark Theme
54 |
55 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-sl-rSI/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Launches hidden activities and creates shortcuts for installed apps
4 | All activities
5 | Disclaimer
6 | Pick an icon
7 | Loading…
8 | Use this software at your own risk. Some apps might not behave as expected when their activities are launched in the wrong context leading to data loss or even worse. You have been warned. Do you understand this and still want to use this software?
9 | Launch activity
10 | Launch activity as root
11 | Create shortcut
12 | Create shortcut as root
13 | Edit shortcut
14 | Name
15 | Package
16 | Class
17 | Icon
18 | Menu
19 | private
20 | As root
21 | Starting activity: %s
22 | Starting application: %s
23 | Creating activity shortcut for %s
24 | Creating application shortcut for %s
25 | Error
26 | Error loading task list
27 | Error creating shortcut
28 | Error loading icons
29 | Error: invalid icon resource
30 | Error: invalid icon format
31 | Package does not have a default activity - try to select one explicitly
32 | Current launcher does not support \"PinShortcut\". Unable to create shortcut.
33 | Warning: Root privileges are probably not available on this device.
34 | Invalid or potentially harmful component name: %s
35 | Command returned error code: %d, output: %s
36 | View source code
37 | The source code of this App is available for reading and modifying on GitHub. Feel free to send us pull requests with improvements and bugfixes.
38 | Help translate
39 | If you are enjoying Activity Launcher, please consider translating the App into your language.
40 | Report a problem
41 | Please submit your suggestions or issues on our GitHub project page.
42 | Filter…
43 | package/action
44 | Settings
45 | Hide private activities
46 | Hide private (unexported and disabled) activities, that cannot be started without root access
47 | Enable privileged mode
48 | Allow launching private activities by using root privileges
49 | Language
50 | Theme
51 | System Default
52 | Light Theme
53 | Dark Theme
54 |
55 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-sr-rRS/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Pokretač Aktivnosti
4 | Launches hidden activities and creates shortcuts for installed apps
5 | Sve aktivnosti
6 | Odricanje odgovornosti
7 | Izaberi ikonicu
8 | Učitavanje…
9 | Koristite ovaj softver na vlastitu odgovornost. Neke aplikacije ne može da se ponašaju kao što je očekivano kada njihove aktivnosti su pokrenuta u kontekst nije u redu, što je dovelo do gubitka podataka ili čak i gore. Bio si upozoren. Ako ovo razumete želite koristiti ovaj softver?
10 | Pokreni ovu aktivnost
11 | Launch activity as root
12 | Kreiraj/napravi prečicu
13 | Create shortcut as root
14 | Uredi prečicu
15 | Ime
16 | Paket
17 | Klasa
18 | Ikonica
19 | Menu
20 | private
21 | As root
22 | Pokretanje Aktivnosti: %s
23 | Pokretanje Aplikacije: %s
24 | Kreiranje prečice aktivnosti za %s
25 | Kreiranje prečice aplikacije za %s
26 | Greška
27 | Greška pri učitavanju liste
28 | Error creating shortcut
29 | Грешка при учитавању ikonice
30 | Greška: Pogrešna ikonica
31 | Greška: pogrešna ikonica
32 | Package does not have a default activity - try to select one explicitly
33 | Trenutni pokretač ne podržava \"PinShortcut\". Nemoguće kreirati prečicu.
34 | Warning: Root privileges are probably not available on this device.
35 | Invalid or potentially harmful component name: %s
36 | Command returned error code: %d, output: %s
37 | Prikaz Sourcecode
38 | The source code of this App is available for reading and modifying on GitHub. Feel free to send us pull requests with improvements and bugfixes.
39 | Pomozute tako što će te prevoditi!
40 | If you are enjoying Activity Launcher, please consider translating the App into your language.
41 | Prijavite problem
42 | Please submit your suggestions or issues on our GitHub project page.
43 | Filter…
44 | package/action
45 | Settings
46 | Hide private activities
47 | Hide private (unexported and disabled) activities, that cannot be started without root access
48 | Enable privileged mode
49 | Allow launching private activities by using root privileges
50 | Language
51 | Theme
52 | System Default
53 | Light Theme
54 | Dark Theme
55 |
56 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-sv-rSE/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Startar dolda aktiviteter och skapar genvägar för installerade appar
4 | Alla aktiviteter
5 | Varning
6 | Välj en ikon
7 | Laddar…
8 | Använd denna programvara på egen risk. Vissa appar kanske inte beter sig som förväntat när deras aktiviteter startas i fel sammanhang vilket leder till dataförlust eller ännu värre. Du har blivit varnad. Förstår du detta och vill fortfarande använda denna programvara?
9 | Starta aktivitet
10 | Starta aktivitet som root
11 | Skapa genväg
12 | Skapa genväg som root
13 | Redigera genväg
14 | Namn
15 | Paket
16 | Klass
17 | Ikon
18 | Meny
19 | privat
20 | Som root
21 | Startar aktivitet: %s
22 | Startar applikation: %s
23 | Skapar aktivitesgenväg för %s
24 | Skapar applikationsgenväg för %s
25 | Fel
26 | Ett fel uppstod när aktivitetslistan skulle laddas
27 | Ett fel uppstod när genvägen skulle skapas
28 | Ett fel uppstod när ikonerna skulle laddas
29 | Fel: ogiltig ikonresurs
30 | Fel: ogiltigt ikonformat
31 | Paketet har ingen standardaktivitet
32 | Nuvarande launcher stöder inte \"PinGencut\". Det går inte att skapa en genväg.
33 | Varning: Roträttigheter är förmodligen inte tillgängliga på den här enheten.
34 | Ogiltigt eller potentiellt skadligt komponentnamn: %s
35 | Kommandot returnerade felkod: %d, utdata: %s
36 | Visa källkod
37 | Källkoden för denna app är tillgänglig för att läsa och ändra på GitHub. Känn dig fri att skicka oss pull-förfrågningar med förbättringar och buggfixar.
38 | Hjälp till att översätta!
39 | Om du gillar Activity Launcher, hjälpa gärna till att översätta appen till ditt språk.
40 | Rapportera ett problem
41 | Om du har några förslag eller problem, rapportera dem i vårt projekt på GitHub.
42 | Filter...
43 | paket/åtgärd
44 | Inställningar
45 | Dölj privata aktiviteter
46 | Dölj privata (oexporterade och inaktiverade) aktiviteter, som inte kan startas utan root-åtkomst
47 | Tillåt rot
48 | Tillåt start av privata aktiviteter genom att använda root-rättigheter
49 | Språk
50 | Tema
51 | Systemstandard
52 | Ljust tema
53 | Mörkt tema
54 |
55 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-th-rTH/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Launches hidden activities and creates shortcuts for installed apps
4 | All activities
5 | Disclaimer
6 | Pick an icon
7 | Loading…
8 | Use this software at your own risk. Some apps might not behave as expected when their activities are launched in the wrong context leading to data loss or even worse. You have been warned. Do you understand this and still want to use this software?
9 | Launch activity
10 | Launch activity as root
11 | Create shortcut
12 | Create shortcut as root
13 | Edit shortcut
14 | Name
15 | Package
16 | Class
17 | Icon
18 | Menu
19 | private
20 | As root
21 | Starting activity: %s
22 | Starting application: %s
23 | Creating activity shortcut for %s
24 | Creating application shortcut for %s
25 | Error
26 | Error loading task list
27 | Error creating shortcut
28 | Error loading icons
29 | Error: invalid icon resource
30 | Error: invalid icon format
31 | Package does not have a default activity - try to select one explicitly
32 | Current launcher does not support \"PinShortcut\". Unable to create shortcut.
33 | Warning: Root privileges are probably not available on this device.
34 | Invalid or potentially harmful component name: %s
35 | Command returned error code: %d, output: %s
36 | View source code
37 | The source code of this App is available for reading and modifying on GitHub. Feel free to send us pull requests with improvements and bugfixes.
38 | Help translate
39 | If you are enjoying Activity Launcher, please consider translating the App into your language.
40 | Report a problem
41 | Please submit your suggestions or issues on our GitHub project page.
42 | Filter…
43 | package/action
44 | Settings
45 | Hide private activities
46 | Hide private (unexported and disabled) activities, that cannot be started without root access
47 | Enable privileged mode
48 | Allow launching private activities by using root privileges
49 | Language
50 | Theme
51 | System Default
52 | Light Theme
53 | Dark Theme
54 |
55 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-tr-rTR/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Gizli etkinlikleri başlatır ve yüklü uygulamalar için kısayollar oluşturur
4 | Tüm aktiviteler
5 | Yasal uyarı
6 | Bir simge seçin
7 | Yükleniyor…
8 | Bu yazılımın kullanımı sizin sorumluluğunuzdadır. Bazı uygulamalar beklenildiği gibi çalışmayabilir ve veri kayıplarına veya daha kötüsüne sebep olabilir. Bu yazılımı hala kullanmak istiyor musunuz?
9 | Aktiviteyi başlat
10 | Etkinliği root yetkisiyle çalıştır
11 | Kısayol oluştur
12 | Yönetici olarak kısayol oluştur
13 | Kısayolu düzenle
14 | İsim
15 | Paket
16 | Sınıf
17 | Simge
18 | Menü
19 | özel
20 | Yönetici olarak
21 | %s etkinliği başlatılıyor
22 | %s uygulaması başlatılıyor
23 | %s için etkinlik kısayolu oluşturuluyor
24 | %s için uygulama kısayolu oluşturuluyor
25 | Hata
26 | Görev listesi yüklenirken hata oluştu
27 | Kısayol oluşturulurken hata oluştu
28 | Simgeler yüklenirken hata oluştu.
29 | Hata: geçersiz simge kaynağı
30 | Hata: geçersiz simge formatı
31 | Paketin varsayılan bir etkinliği yok - bir ayrıntı eklemeyi deneyin
32 | Geçerli başlatıcısı \"PinShortcut\" özelliğini desteklemiyor. Kısayol oluşturulamıyor.
33 | Uyarı: Kök ayrıcalıkları muhtemelen bu cihazda mevcut değildir.
34 | Geçersiz veya potansiyel olarak zararlı bileşen adı: %s
35 | Komut, hata kodunu döndürdü: %d, çıktı: %s
36 | Kaynak Kodunu Göster
37 | Bu uygulamanın kaynak kodu GitHub\'da mevcuttur.
38 | Okunabilir veya düzenlenebilir. İyileştirmeler ve hata düzeltmeleri için yardım etmekten çekinmeyin.
39 | Çeviriye Yardım Et!
40 | Activity Launcher\'dan hoşlanıyorsanız, lütfen uygulamayı kendi dilinize çevirmeyi düşünün.
41 | Bir Sorun Bildirin
42 | Lütfen önerilerinizi veya sorunlarınızı GitHub proje sayfamıza gönderin.
43 | Filtre...
44 | paket/eylem
45 | Ayarlar
46 | Gizli etkinlikleri gizle
47 | Kök erişimi olmadan başlatılamayan özel (dışa aktarılmamış ve devre dışı bırakılmış) etkinlikleri gizleyin
48 | Ayrıcalıklı modu etkinleştir
49 | Kök ayrıcalıklarını kullanarak özel etkinliklerin başlatılmasına izin ver
50 | Dil
51 | Tema
52 | Sistem Varsayılanı
53 | Açık Tema
54 | Koyu Tema
55 |
56 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-uk-rUA/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Лаунчер діяльності
4 | Запускає приховані дії та створює ярлики для встановлених програм
5 | Усі діяльності
6 | Відмова від відповідальності
7 | Обрати іконку
8 | Завантаження...
9 | Використовувйте це програмне забезпечення на свій страх і ризик. Деякі програми можуть вести себе не так, як очікувалося, коли їх діяльність запускаються в неправильному контексті, що веде до втрати даних або навіть гірше. Ви були попереджені. Ви це розуміїте і хочете використовувати це програмне забезпечення?
10 | Запуск дії
11 | Запуск дії (root)
12 | Створити ярлик
13 | Створити ярлик (root)
14 | Редагувати ярлик
15 | Ім’я
16 | Пакет
17 | Клас
18 | Іконка
19 | Меню
20 | приватний
21 | Root
22 | Запуск діяльності: %s
23 | Запуск програми: %s
24 | Створення ярлика дії для %s
25 | Створення ярлика додатку для %s
26 | Помилка
27 | Помилка завантаження списку завдань
28 | Помилка створення ярлика
29 | Помилка завантаження іконок
30 | Помилка: неприпустима іконка
31 | Помилка: неприпустимий формат іконки
32 | Пакет не має дії за замовчуванням, спробуйте вибрати її власноруч
33 | Поточний лаунчер не підтримує \"PinShortcut\". Неможливо створити ярлик.
34 | Попередження: Ймовірно, на цьому пристрої відсутні root-права.
35 | Недопустима або потенційно небезпечна назва компоненту: %s
36 | Команда повернула код помилки: %d, результат: %s
37 | Перегляд вихідного коду
38 | Код цього додатку доступний для читання та зміни на GitHub. Не вагайтесь відправляти нам запити на внесення змін з покращеннями та виправленням помилок.
39 | Допоможіть перекласти!
40 | Якщо вам подобається Activity Launcher, будь ласка, розгляньте можливість переведення програми на вашу мову.
41 | Повідомити про проблему
42 | Якщо у вас є які-небудь пропозиції або проблеми, будь ласка, повідомте про них на сторінці проекту в GitHub.
43 | Фільтр...
44 | пакет/дія
45 | Налаштування
46 | Приховати приватні дії
47 | Приховати приватні та вимкнені дії, які не можуть бути запущені без root-доступу
48 | Включити привілейований режим
49 | Дозволити запуск приватних дій за допомогою root-прав
50 | Мова
51 | Тема
52 | Системна (за замовчуванням)
53 | Світла
54 | Темна
55 |
56 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-vi-rVN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Khởi chạy hoạt động ẩn và tạo lối tắt cho ứng dụng được cài đặt
4 | Tất cả các ứng dụng
5 | Miễn trừ trách nhiệm
6 | Chọn biểu tượng
7 | Đang tải dữ liệu…
8 | Sử dụng phần mềm này có thể nảy sinh một số nguy cơ. Một số ứng dụng có thể không hoạt động như mong muốn dẫn đến mất dữ liệu hoặc thậm chí tồi tệ hơn. Bạn đã được cảnh báo. Bạn đã hiểu được điều này và vẫn muốn sử dụng phần mềm này?
9 | Khởi chạy hoạt động
10 | Chạy hoạt động này như là root
11 | Tạo lối tắt
12 | Tạo lối tắt như là root
13 | Chỉnh sửa lối tắt
14 | Tên
15 | Gói
16 | Cấp
17 | Biểu tượng
18 | Trình đơn
19 | riêng
20 | Như là root
21 | Đang bắt đầu hoạt động: %s
22 | Đang bắt đầu ứng dụng: %s
23 | Đang tạo lối tắt hoạt động cho %s
24 | Đang tạo lối tắt ứng dụng cho %s
25 | Lỗi
26 | Lỗi khi tải danh sách tác vụ
27 | Error creating shortcut
28 | Lỗi khi tải biểu tượng
29 | Lỗi: không hợp lệ biểu tượng tài nguyên
30 | Lỗi: định dạng biểu tượng không hợp lệ
31 | Gói không có hoạt động mặc định - hãy thử chọn rõ một hoạt động
32 | Current launcher does not support \"PinShortcut\". Unable to create shortcut.
33 | Cảnh báo: Quyền root có thể không có sẵn trên thiết bị này.
34 | Tên thành phần không hợp lệ hoặc có thể gây hại: %s
35 | Câu lệnh trả về mã lỗi: %d, nội dung: %s
36 | Xem mã nguồn
37 | Mã nguồn của ứng dụng này có sẵn để đọc và thay đổi trên GitHub. Bạn có thể thoải mái gửi chúng tôi yêu cầu pull với những cải tiến và sửa lỗi của bạn.
38 | Giúp chúng tôi dịch!
39 | Nếu bạn thích Trình chạy hoạt động, bạn nên cân nhắc dịch ứng dụng này cho ngôn ngữ của bạn.
40 | Báo cáo lỗi
41 | Nếu bạn có bất kỳ gợi ý hay vấn đề nào, vui lòng báo cáo chúng vào dự án của chúng tôi tại GitHub.
42 | Lọc...
43 | gói/hành động
44 | Cài đặt
45 | Ẩn hoạt động private
46 | Ẩn hoạt động (chưa export và tắt) ẩn danh không thể bắt đầu nếu không có quyền root
47 | Cho phép root
48 | Cho phép bắt đầu hoạt động ẩn danh bằng quyền root
49 | Ngôn ngữ
50 | Chủ đề
51 | Mặc định hệ thống
52 | Chủ đề Sáng
53 | Chủ đề Tối
54 |
55 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values-zh-rCN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 活动启动器
4 | 启动隐藏活动并为已安装的应用创建快捷方式
5 | 所有活动
6 | 免责声明
7 | 选取图标
8 | 载入中...
9 | 警示:
10 | 使用本软件表示您将独自承担软件使用过程中可能出现的风险,这些风险包括但不限于:一些应用活动在不正确的配置下启动时可能会产生意料之外的错误,这可能会导致应用数据丢失或者更严重的问题。您确认知晓这些可能产生的风险并仍然打算使用该软件吗?
11 | 启动活动
12 | 使用ROOT启动活动
13 | 创建快捷方式
14 | 使用ROOT创建快捷方式
15 | 编辑快捷方式
16 | 名称
17 | 安装包
18 | 类
19 | 图标
20 | 菜单
21 | 私人的
22 | 使用ROOT
23 | 启动活动:%s
24 | 启动应用:%s
25 | 正在为 %s 创建活动快捷方式
26 | 为%s应用创建快捷方式
27 | 错误
28 | 加载任务列表出错
29 | 无法创建快捷方式
30 | 加载图标时出错
31 | 错误: 无效的图标资源
32 | 错误: 无效的图标格式
33 | 软件包没有默认活动 - 尝试明确选择一个
34 | 当前启动器尚不支持 “PinShortcut”。无法创建快捷方式。
35 | 警告:Root权限可能在此设备上不可用。
36 | 无效或有害的名称%s
37 | 命令返回错误代码: %d, 输出: %s
38 | 查看源代码
39 | 此应用的源代码可在 GitHub 上读取和修改。请随时向我们发送含有改进和缺陷修复的请求。
40 | 帮助我们翻译
41 | 如果您喜欢活动启动器,请考虑将应用程序翻译成您的语言。
42 | 报告问题
43 | 如果您有任何建议或问题,请在我们的GitHub项目中报告。
44 | 筛选
45 | 软件包/操作
46 | 设置
47 | 隐藏不可用的活动
48 | 隐藏的活动(无接口或禁用)不能在没有Root权限下被打开。
49 | 允许Root
50 | 允许通过使用 Root 权限启动隐藏活动
51 | 语言
52 | 主题背景
53 | 系统默认
54 | 浅色
55 | 深色
56 |
57 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values/defaults.xml:
--------------------------------------------------------------------------------
1 |
2 | https://github.com/Sash0k/ActivityLauncher/tree/rustore-fork
3 | https://crowdin.net/project/activitylauncher/invite
4 | https://github.com/butzist/ActivityLauncher/issues
5 |
6 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #009688
4 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values/locales.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | - System Default
5 | - af_ZA
6 | - ar_SA
7 | - bg_BG
8 | - ca_ES
9 | - cs_CZ
10 | - da_DK
11 | - de_DE
12 | - el_GR
13 | - en_GB
14 | - en_US
15 | - es_ES
16 | - fa_IR
17 | - fi_FI
18 | - fr_FR
19 | - hi_IN
20 | - hu_HU
21 | - in_ID
22 | - it_IT
23 | - iw_IL
24 | - ja_JP
25 | - tr_TR
26 | - ko_KR
27 | - nl_NL
28 | - nb_NO
29 | - pl_PL
30 | - pt_BR
31 | - pt_PT
32 | - ro_RO
33 | - ru_RU
34 | - si_LK
35 | - sk_SK
36 | - sl_SI
37 | - sr_RS
38 | - sv_SE
39 | - th_TH
40 | - tr_TR
41 | - uk_UA
42 | - vi_VN
43 | - zh_CN
44 |
45 |
46 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Activity Launcher fork
4 |
5 | Launches hidden activities and creates shortcuts for installed apps
6 | All activities
7 | Disclaimer
8 | Pick an icon
9 | Loading…
10 | Use this software at your own risk. Some apps might not behave as expected when their activities are launched in the wrong context leading to data loss or even worse. You have been warned. Do you understand this and still want to use this software?
11 | Launch activity
12 | Launch activity as root
13 | Create shortcut
14 | Create shortcut as root
15 | Edit shortcut
16 | Name
17 | Package
18 | Class
19 | Icon
20 | Menu
21 | private
22 | As root
23 | Starting activity: %s
24 | Starting application: %s
25 | Creating activity shortcut for %s
26 | Creating application shortcut for %s
27 | Error
28 | Error loading task list
29 | Error creating shortcut
30 | Error loading icons
31 | Error: invalid icon resource
32 | Error: invalid icon format
33 | Package does not have a default activity - try to select one explicitly
34 | Current launcher does not support "PinShortcut". Unable to create shortcut.
35 | Warning: Root privileges are probably not available on this device.
36 | Invalid or potentially harmful component name: %s
37 | Command returned error code: %d, output: %s
38 | About
39 | View source code
40 | The source code of this App is available for reading and modifying on GitHub. Feel free to send us pull requests with improvements and bugfixes.
41 | Help translate
42 | If you are enjoying Activity Launcher, please consider translating the App into your language.
43 | Report a problem
44 | Please submit your suggestions or issues on our GitHub project page.
45 | Filter…
46 | package/action
47 | Settings
48 | Hide private activities
49 | Hide private (unexported and disabled) activities, that cannot be started without root access
50 | Enable privileged mode
51 | Allow launching private activities by using root privileges
52 | Language
53 | Theme
54 | System Default
55 | Light Theme
56 | Dark Theme
57 |
58 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values/theme_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | - @string/theme_default
5 | - @string/theme_light
6 | - @string/theme_dark
7 |
8 |
9 |
10 | - 0
11 | - 1
12 | - 2
13 |
14 |
15 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/values/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
14 |
--------------------------------------------------------------------------------
/ActivityLauncherApp/src/main/res/xml/preferences.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
7 |
12 |
17 |
23 |
28 |
29 |
30 |
32 |
37 |
39 |
40 |
41 |
47 |
49 |
50 |
56 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | ISC License
2 |
3 | Copyright (c) 2015-2019, Adam M. Szalkowski
4 |
5 | Permission to use, copy, modify, and/or distribute this software for any
6 | purpose with or without fee is hereby granted, provided that the above
7 | copyright notice and this permission notice appear in all copies.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ### Archived here. Project development has been continued in [GitFlic](https://gitflic.ru/project/sash0k/activitylauncher)
2 |
3 | Activity Launcher fork
4 | =================
5 |
6 |
7 | Запуск и создание ярлыков для установленных приложений (в том числе для скрытых в системе).
8 |
9 |
10 |
11 |
12 | [
](https://f-droid.org/packages/de.szalkowski.activitylauncher.rustore_fork/)
15 |
16 | Fork features
17 | ------------
18 | * minSdkVersion 23 (Android 6.0+)
19 | * feature: implemented search history
20 | * feature: show versions for apps in list, UI redesign
21 | * size and internal dependencies optimized (about 30% smaller)
22 | * Russian i18n reverted + translations improved
23 |
24 | Особенности форка
25 | ------------
26 | * minSdkVersion 23 (Android 6.0+)
27 | * feature: реализована история предыдущего поиска
28 | * feature: вывод версий приложений в списке и общий редизайн
29 | * оптимизация размера приложения и зависимостей (приложение на 30% легче оригинала)
30 | * русский язык + небольшие улучшения в переводе
31 |
32 | Причина создания форка
33 | ------------
34 | В феврале 2022 года автор оригинального приложения сделал его недоступным для загрузки с территории РФ в Google Play, а также удалил русский язык.
35 |
36 | NB!
37 | ------------
38 | Этот форк открыт для всех, согласно идеологии OpenSource, без дискриминации по политическим, национальным и иным причинам.
39 | This fork is open to all around the world according to OSS ideology, without discrimination for political, national or any other reasons.
40 |
41 | Ссылка на оригинальный проект
42 | ------------
43 | https://github.com/butzist/ActivityLauncher
44 | ISC License. Copyright (c) 2015-2019, Adam M. Szalkowski
45 |
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 | buildscript {
3 | repositories {
4 | mavenCentral()
5 | google()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:7.3.1'
9 | }
10 | }
11 |
12 | allprojects {
13 | repositories {
14 | google()
15 | mavenCentral()
16 | maven {
17 | url 'https://maven.google.com/'
18 | name 'Google'
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/137.txt:
--------------------------------------------------------------------------------
1 | * fork feature: implemented search history
2 | * fork feature: show versions for apps in list, UI redesign
3 | * fork: size and internal dependencies optimized (about 30% smaller)
4 | * fork: translations improved
5 | * mainline: Fix for issue #171 (Shortcuts not working properly in Android 13) (@Ismael034)
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/full_description.txt:
--------------------------------------------------------------------------------
1 | This open-source Android App launches hidden activities and creates home screen shortcuts for installed apps.
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/icon.png:
--------------------------------------------------------------------------------
1 | ../../../../../ActivityLauncherApp/src/main/ic_launcher-web.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png:
--------------------------------------------------------------------------------
1 | ../../../../../../images/1.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png:
--------------------------------------------------------------------------------
1 | ../../../../../../images/2.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png:
--------------------------------------------------------------------------------
1 | ../../../../../../images/3.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/short_description.txt:
--------------------------------------------------------------------------------
1 | Create shortcuts for any installed app and even hidden to launch them with ease
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru/changelogs/137.txt:
--------------------------------------------------------------------------------
1 | * feature: реализована история предыдущего поиска
2 | * feature: вывод версий приложений в списке и общий редизайн
3 | * оптимизация размера приложения и зависимостей (приложение на 30% легче оригинала)
4 | * русский язык + небольшие улучшения в переводе
5 | * mainline: Fix for issue #171 (Shortcuts not working properly in Android 13) (@Ismael034)
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru/full_description.txt:
--------------------------------------------------------------------------------
1 | Запуск и создание ярлыков для установленных приложений (в том числе для скрытых в системе).
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru/short_description.txt:
--------------------------------------------------------------------------------
1 | Запуск и создание ярлыков для установленных приложений (в т.ч скрытых в системе)
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | android.enableJetifier=false
2 | android.useAndroidX=true
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sash0k/ActivityLauncher/ee0f22bd3d11cbd7109af4aaea29b8f25cc150b5/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @rem
2 | @rem Copyright 2015 the original author or authors.
3 | @rem
4 | @rem Licensed under the Apache License, Version 2.0 (the "License");
5 | @rem you may not use this file except in compliance with the License.
6 | @rem You may obtain a copy of the License at
7 | @rem
8 | @rem https://www.apache.org/licenses/LICENSE-2.0
9 | @rem
10 | @rem Unless required by applicable law or agreed to in writing, software
11 | @rem distributed under the License is distributed on an "AS IS" BASIS,
12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | @rem See the License for the specific language governing permissions and
14 | @rem limitations under the License.
15 | @rem
16 |
17 | @if "%DEBUG%"=="" @echo off
18 | @rem ##########################################################################
19 | @rem
20 | @rem Gradle startup script for Windows
21 | @rem
22 | @rem ##########################################################################
23 |
24 | @rem Set local scope for the variables with windows NT shell
25 | if "%OS%"=="Windows_NT" setlocal
26 |
27 | set DIRNAME=%~dp0
28 | if "%DIRNAME%"=="" set DIRNAME=.
29 | set APP_BASE_NAME=%~n0
30 | set APP_HOME=%DIRNAME%
31 |
32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter.
33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
34 |
35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
37 |
38 | @rem Find java.exe
39 | if defined JAVA_HOME goto findJavaFromJavaHome
40 |
41 | set JAVA_EXE=java.exe
42 | %JAVA_EXE% -version >NUL 2>&1
43 | if %ERRORLEVEL% equ 0 goto execute
44 |
45 | echo.
46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
47 | echo.
48 | echo Please set the JAVA_HOME variable in your environment to match the
49 | echo location of your Java installation.
50 |
51 | goto fail
52 |
53 | :findJavaFromJavaHome
54 | set JAVA_HOME=%JAVA_HOME:"=%
55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
56 |
57 | if exist "%JAVA_EXE%" goto execute
58 |
59 | echo.
60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
61 | echo.
62 | echo Please set the JAVA_HOME variable in your environment to match the
63 | echo location of your Java installation.
64 |
65 | goto fail
66 |
67 | :execute
68 | @rem Setup the command line
69 |
70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
71 |
72 |
73 | @rem Execute Gradle
74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
75 |
76 | :end
77 | @rem End local scope for the variables with windows NT shell
78 | if %ERRORLEVEL% equ 0 goto mainEnd
79 |
80 | :fail
81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
82 | rem the _cmd.exe /c_ return code!
83 | set EXIT_CODE=%ERRORLEVEL%
84 | if %EXIT_CODE% equ 0 set EXIT_CODE=1
85 | if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
86 | exit /b %EXIT_CODE%
87 |
88 | :mainEnd
89 | if "%OS%"=="Windows_NT" endlocal
90 |
91 | :omega
92 |
--------------------------------------------------------------------------------
/images/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sash0k/ActivityLauncher/ee0f22bd3d11cbd7109af4aaea29b8f25cc150b5/images/1.png
--------------------------------------------------------------------------------
/images/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sash0k/ActivityLauncher/ee0f22bd3d11cbd7109af4aaea29b8f25cc150b5/images/2.png
--------------------------------------------------------------------------------
/images/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sash0k/ActivityLauncher/ee0f22bd3d11cbd7109af4aaea29b8f25cc150b5/images/3.png
--------------------------------------------------------------------------------
/images/rustore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sash0k/ActivityLauncher/ee0f22bd3d11cbd7109af4aaea29b8f25cc150b5/images/rustore.png
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':ActivityLauncherApp'
2 |
--------------------------------------------------------------------------------
/update-translations.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | mkdir _crowdin
4 | pushd _crowdin
5 | wget https://crowdin.com/backend/download/project/activitylauncher.zip
6 | unzip activitylauncher.zip
7 | chmod 644 */*.*
8 | chmod 755 *
9 | rm -fr ../descriptions
10 | mv descriptions ..
11 | cp -r res/* ../ActivityLauncherApp/src/main/res/
12 | popd
13 | rm -fr _crowdin
14 |
--------------------------------------------------------------------------------