├── .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 | 3 | 8 | 13 | 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 | Скачайте из RuStore 11 | 12 | [Get it on F-Droid](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 | --------------------------------------------------------------------------------