@@ -4,6 +4,7 @@ import android.app.ActivityManager
44import android.app.DownloadManager
55import android.content.ClipData
66import android.content.ClipboardManager
7+ import android.content.pm.PackageManager
78import android.net.Uri
89import android.os.Bundle
910import android.os.StrictMode
@@ -29,6 +30,8 @@ import androidx.compose.material3.Text
2930import androidx.compose.runtime.Composable
3031import androidx.compose.ui.Modifier
3132import androidx.compose.ui.unit.dp
33+ import androidx.core.app.ActivityCompat
34+ import androidx.core.content.ContextCompat
3235import androidx.core.content.getSystemService
3336import com.example.llama.ui.theme.LlamaAndroidTheme
3437import java.io.File
@@ -56,6 +59,19 @@ class MainActivity(
5659 override fun onCreate (savedInstanceState : Bundle ? ) {
5760 super .onCreate(savedInstanceState)
5861
62+ val permissionGranted = ContextCompat .checkSelfPermission(
63+ this ,
64+ android.Manifest .permission.WRITE_EXTERNAL_STORAGE
65+ ) == PackageManager .PERMISSION_GRANTED
66+
67+ if (! permissionGranted) {
68+ ActivityCompat .requestPermissions(
69+ this ,
70+ arrayOf(android.Manifest .permission.WRITE_EXTERNAL_STORAGE ),
71+ 0
72+ )
73+ }
74+
5975 StrictMode .setVmPolicy(
6076 VmPolicy .Builder (StrictMode .getVmPolicy())
6177 .detectLeakedClosableObjects()
@@ -71,6 +87,11 @@ class MainActivity(
7187 val extFilesDir = getExternalFilesDir(null )
7288
7389 val models = listOf (
90+ Downloadable (
91+ " Qwen2.5 0.5B (Q4_K_M, 429 MiB)" ,
92+ Uri .parse(" https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct-GGUF/resolve/main/qwen2.5-0.5b-instruct-q4_k_m.gguf?download=true" ),
93+ File (extFilesDir, " qwen2.5-0.5b-instruct-q4_k_m.gguf" ),
94+ ),
7495 Downloadable (
7596 " Phi-2 7B (Q4_0, 1.6 GiB)" ,
7697 Uri .parse(" https://huggingface.co/ggml-org/models/resolve/main/phi-2/ggml-model-q4_0.gguf?download=true" ),
0 commit comments