Add a new activity_choose activity

This commit is contained in:
Finn M Glas 2020-05-14 21:31:54 +02:00
parent 2327b028ff
commit 7fd2e9c733
5 changed files with 108 additions and 73 deletions

View file

@ -20,6 +20,14 @@
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name=".ChooseActivity"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application> </application>
</manifest> </manifest>

View file

@ -0,0 +1,66 @@
package com.finnmglas.launcher
import android.annotation.SuppressLint
import android.content.Intent
import android.content.pm.ApplicationInfo
import android.graphics.Color
import android.os.Bundle
import android.view.WindowManager
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_choose.*
class ChooseActivity : AppCompatActivity() {
private fun listApps() {
val mainIntent = Intent(Intent.ACTION_MAIN, null)
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER)
val pm = packageManager
val apps = pm.getInstalledApplications(0)
val installedApps: MutableList<ApplicationInfo> = ArrayList()
// list
for (app in apps) {
if (app.flags and ApplicationInfo.FLAG_UPDATED_SYSTEM_APP != 0) {
//checks for flags; if flagged, check if updated system app
installedApps.add(app);
} else if (app.flags and ApplicationInfo.FLAG_SYSTEM != 0) {
//it's a system app, not interested
} else {
//in this case, it should be a user-installed app
installedApps.add(app)
}
}
// ui
for (app in installedApps) {
//packageInfo.sourceDir
pm.getLaunchIntentForPackage(app.packageName)
// creating TextView programmatically
val tvdynamic = TextView(this)
tvdynamic.textSize = 20f
tvdynamic.text = app.loadLabel(pm).toString()
tvdynamic.setTextColor(Color.parseColor("#cccccc"));
tvdynamic.setOnClickListener { startActivity(pm.getLaunchIntentForPackage(app.packageName)) }
apps_list.addView(tvdynamic)
}
}
@SuppressLint("SetTextI18n") // I do not care
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
setContentView(R.layout.activity_choose)
listApps()
}
}

View file

@ -10,6 +10,7 @@ import android.view.KeyEvent
import android.view.MotionEvent import android.view.MotionEvent
import android.view.View import android.view.View
import android.view.WindowManager import android.view.WindowManager
import android.widget.TextView
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.MotionEventCompat import androidx.core.view.MotionEventCompat
@ -48,22 +49,6 @@ class MainActivity : AppCompatActivity() {
} }
} }
private fun listApps() {
val mainIntent = Intent(Intent.ACTION_MAIN, null)
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER)
val pm = packageManager
val packages =
pm.getInstalledApplications(PackageManager.GET_META_DATA)
for (packageInfo in packages) {
//packageInfo.packageName
//packageInfo.sourceDir
pm.getLaunchIntentForPackage(packageInfo.packageName)
startActivity(pm.getLaunchIntentForPackage(packageInfo.packageName))
}
}
fun launchInstagram(v: View){ launchApp("com.instagram.android") } fun launchInstagram(v: View){ launchApp("com.instagram.android") }
fun launchWhatsapp(v: View){ launchApp("com.whatsapp") } fun launchWhatsapp(v: View){ launchApp("com.whatsapp") }
@ -125,7 +110,8 @@ class MainActivity : AppCompatActivity() {
} }
else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
//listApps() // crashes val intent = Intent(this, ChooseActivity::class.java);
startActivity(intent)
} }
return true return true
} }

View file

@ -0,0 +1,31 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorPrimaryDark"
tools:context=".ChooseActivity">
<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:id="@+id/apps_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -35,60 +35,4 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<!--<com.finnmglas.launcher.FontAwesome
android:id="@+id/home"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:onClick="launchBrowser"
android:text="@string/fa_icon_home"
android:textColor="#ffffff"
android:textSize="64sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.767"
tools:ignore="MissingConstraints" />
<com.finnmglas.launcher.FontAwesome
android:id="@+id/cal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:gravity="clip_vertical"
android:onClick="launchCalendar"
android:text="@string/fa_icon_calendar"
android:textColor="#ffffff"
android:textSize="64sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.198"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.767"
tools:ignore="MissingConstraints" />
<com.finnmglas.launcher.FontAwesome
android:id="@+id/media"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:gravity="clip_vertical"
android:onClick="launchCalendar"
android:text="@string/fa_icon_bars"
android:textColor="#ffffff"
android:textSize="64sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.198"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0"
tools:ignore="MissingConstraints" /-->
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>