Compare commits

...

2 Commits

Author SHA1 Message Date
MrApple100
e5ce2fcdb2 Work No
Some checks failed
Merge core/template-android-project to this repo / merge-if-needed (push) Failing after 14s
2024-08-22 17:15:47 +03:00
MrApple100
07051a904b Work yes 2024-08-22 17:06:00 +03:00
8 changed files with 176 additions and 2 deletions

View File

@ -1,4 +1,5 @@
plugins {
id("org.jetbrains.kotlin.android")
androidApplication
}
@ -6,7 +7,7 @@ val packageName = "ru.myitschool.work"
android {
namespace = packageName
compileSdk = Version.Android.Sdk.compile
compileSdk = 35
defaultConfig {
applicationId = packageName
@ -24,8 +25,12 @@ android {
sourceCompatibility = Version.Kotlin.javaSource
targetCompatibility = Version.Kotlin.javaSource
}
kotlinOptions {
jvmTarget = "1.8"
}
}
dependencies {
implementation("androidx.core:core-ktx:+")
defaultLibrary()
}

View File

@ -11,6 +11,29 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Default"
tools:targetApi="31" />
tools:targetApi="31" >
<activity
android:exported="true"
android:enabled="true"
android:name=".MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:exported="true"
android:enabled="true"
android:name=".GetActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<!-- TODO ... Реализовать в xml возможность принятия изображений и текста для активити GetActivity -->
</intent-filter>
</activity>
</application>
</manifest>

View File

@ -0,0 +1,45 @@
package ru.myitschool.work
import android.content.Intent
import android.graphics.Bitmap
import android.net.Uri
import android.os.Bundle
import android.provider.MediaStore
import android.widget.ImageView
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class GetActivity : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.getter_activity)
}
override fun onResume() {
super.onResume()
val intent = intent
// Figure out what to do based on the intent type
// Figure out what to do based on the intent type
if (intent.type!!.indexOf("image/") != -1) {
val imageView = findViewById<ImageView>(R.id.IV)
val bitmap = getBitmap(intent)
imageView.setImageBitmap(bitmap)
} else if (intent.type == "text/plain") {
val textView = findViewById<TextView>(R.id.TV)
val text = getText(intent)
textView.text = text
}
}
private fun getBitmap(intent: Intent):Bitmap{
TODO() //Реализовать получение картинки из Intent
}
private fun getText(intent: Intent):String{
TODO() //Реализовать получение текста из Intent
}
}

View File

@ -0,0 +1,54 @@
package ru.myitschool.work
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.os.Environment
import android.provider.MediaStore
import android.view.View
import android.widget.Toast
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.PickVisualMediaRequest
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import java.io.File
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val handler: View.OnClickListener = View.OnClickListener { v ->
when (v.id) {
R.id.buttonShareTextUrl -> shareTextUrl()
R.id.buttonShareImage -> shareImage()
}
}
findViewById<View>(R.id.buttonShareTextUrl).setOnClickListener(handler)
findViewById<View>(R.id.buttonShareImage).setOnClickListener(handler)
}
private fun shareTextUrl() {
val share = Intent(Intent.ACTION_SEND)
share.type = "text/plain"
share.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
share.putExtra(Intent.EXTRA_SUBJECT, "Hello from my app")
share.putExtra(Intent.EXTRA_TEXT, "http://myitschool.ru")
startActivity(Intent.createChooser(share, "Share link!"))
Toast.makeText(applicationContext, "Text shared", Toast.LENGTH_LONG).show()
}
private fun shareImage() {
val request = PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly)
requestPicker.launch(request)
}
val requestPicker = registerForActivityResult(ActivityResultContracts.PickMultipleVisualMedia()) { uris ->
TODO()//Реализовать requestPicker по выбору картинки и отправке в друго приложение с выбором
}
}

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/buttonShareTextUrl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:text="@string/share_text_or_url" />
<Button
android:id="@+id/buttonShareImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/buttonShareTextUrl"
android:text="@string/share_image" />
</RelativeLayout>

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/IV"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ImageView>
<TextView
android:id="@+id/TV"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>

View File

@ -1,3 +1,5 @@
<resources>
<string name="app_name">Work</string>
<string name="share_text_or_url">share_text_or_url</string>
<string name="share_image">share_image</string>
</resources>

View File

@ -2,4 +2,5 @@
plugins {
androidApplication version Version.gradle apply false
kotlinJvm version Version.Kotlin.language apply false
id("org.jetbrains.kotlin.android") version "1.9.0" apply false
}