Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 705036c9 authored by Romain Hunault's avatar Romain Hunault 🚴🏻
Browse files

Merge branch 'issue-1906' into 'master'

MicroG NE version can be downloaded from Apps now.

See merge request e/apps/apps!39
parents cbe79c71 4c80ca54
Loading
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ android {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

    }
    dataBinding {
        enabled = true
@@ -36,10 +37,6 @@ android {
    androidExtensions {
        experimental = true
    }
    aaptOptions{
        additionalParameters '-I', 'app/e-ui-sdk.jar'
    }

}

dependencies {
@@ -87,7 +84,7 @@ dependencies {
    implementation "com.fasterxml.jackson.core:jackson-databind:2.11.1"
    implementation "com.fasterxml.jackson.module:jackson-module-kotlin:2.11.1"

    implementation 'com.github.chrisbanes:PhotoView:2.3.0'
    implementation 'com.android.volley:volley:1.1.1'

    compileOnly files("e-ui-sdk.jar")
    implementation 'com.github.chrisbanes:PhotoView:2.3.0'
}

app/e-ui-sdk.jar

deleted100644 → 0
−116 KiB

File deleted.

Preview suppressed by a .gitattributes entry or the file's encoding is unsupported.

+8 −9
Original line number Diff line number Diff line
@@ -20,13 +20,13 @@

    <application
        android:allowBackup="true"
        android:alwaysRetainTaskState="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher"
        android:supportsRtl="true"
        android:largeHeap="true"
        android:launchMode="singleInstance"
        android:alwaysRetainTaskState="true"
        android:roundIcon="@mipmap/ic_launcher"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <!--        <activity android:name=".application.PwaInstaller"/>-->
        <activity android:name=".settings.AppRequestActivity" />
@@ -40,7 +40,6 @@
        <activity android:name=".application.ApplicationActivity" />
        <activity android:name=".categories.category.CategoryActivity" />


        <service
            android:name=".applicationmanager.ApplicationManagerService"
            android:description="@string/service_description"
@@ -48,7 +47,7 @@

        <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="foundation.e.apps.provider"
            android:authorities="${applicationId}.provider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
@@ -67,8 +66,8 @@
            android:name=".XAPK.InstallSplitApksActivity"
            android:configChanges="screenSize|orientation|keyboardHidden"
            android:launchMode="singleInstance"
            android:windowSoftInputMode="adjustResize"
            android:theme="@style/AppTheme1"/>
            android:theme="@style/AppTheme1"
            android:windowSoftInputMode="adjustResize" />
    </application>

</manifest>
 No newline at end of file
+6 −65
Original line number Diff line number Diff line
@@ -19,24 +19,15 @@ package foundation.e.apps

//import androidx.fragment.app.ListFragment


import android.annotation.SuppressLint
import android.content.*
import android.content.pm.PackageManager
import android.content.res.ColorStateList
import android.graphics.Color
import android.os.Bundle
import android.os.Handler
import android.preference.PreferenceManager
import android.util.TypedValue
import android.view.MenuItem
import android.widget.Toast
import androidx.annotation.ColorInt
import androidx.annotation.ColorRes
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.view.ContextThemeWrapper
import androidx.core.content.ContextCompat
import androidx.core.graphics.drawable.DrawableCompat
import androidx.fragment.app.Fragment
import com.google.android.material.bottomnavigation.BottomNavigationItemView
import com.google.android.material.bottomnavigation.BottomNavigationMenuView
@@ -69,26 +60,22 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS
    private val codeRequestPermissions = 9527
    var doubleBackToExitPressedOnce = false;
    private var isReceiverRegistered = false
    var accentColorOS = 0



    companion object {
        lateinit var mActivity: MainActivity
        var sharedPreferences : SharedPreferences?=null

        val sharedPrefFile = "kotlinsharedpreference"
    }



    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        //ThemeColors(this);
        setContentView(R.layout.activity_main)
        mActivity = this
        disableCategoryIfOpenSource()



        bottom_navigation_view.setOnNavigationItemSelectedListener{
            if (selectFragment(it.itemId,it)) {
                disableCategoryIfOpenSource()
@@ -115,28 +102,6 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS
        }
        setupLangReceiver()
        applicationManagerServiceConnection.bindService(this)

        getAccentColor();
        bottom_navigation_view_color()
    }

    private fun bottom_navigation_view_color() {
        val iconsColorStates =
                ColorStateList(arrayOf(intArrayOf(-android.R.attr.state_checked),
                        intArrayOf(android.R.attr.state_checked)), intArrayOf(
                        Color.parseColor("#C4CFD9"),
                        accentColorOS
        ))

        val textColorStates = ColorStateList(arrayOf(intArrayOf(-android.R.attr.state_checked), intArrayOf(android.R.attr.state_checked)), intArrayOf(
                Color.parseColor("#C4CFD9"),
                accentColorOS

        ))

        bottom_navigation_view.setItemIconTintList(iconsColorStates)
        bottom_navigation_view.setItemTextColor(textColorStates)

    }

    private fun initialiseUpdatesWorker() {
@@ -151,9 +116,9 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS
    }

    private fun initialiseFragments(applicationManager: ApplicationManager) {
        homeFragment.initialise(applicationManager, accentColorOS)
        searchFragment.initialise(applicationManager, accentColorOS)
        updatesFragment.initialise(applicationManager, accentColorOS)
        homeFragment.initialise(applicationManager)
        searchFragment.initialise(applicationManager)
        updatesFragment.initialise(applicationManager)
    }

    override fun onNavigationItemSelected(item: MenuItem): Boolean {
@@ -179,28 +144,17 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS
        return "any"
    }

    fun tintMenuIcon(context: Context, item: MenuItem, @ColorRes color: Int) {
        val normalDrawable = item.icon
        val wrapDrawable = DrawableCompat.wrap(normalDrawable)

        DrawableCompat.setTint(wrapDrawable, ContextCompat.getColor(context, color))//context.resources.getColor(color))
        item.icon = wrapDrawable
    }

    private fun selectFragment(fragmentId: Int, item: MenuItem?): Boolean {

        when (fragmentId) {

            R.id.menu_home -> {
                item?.setIcon(R.drawable.ic_menu_home)
                showFragment(homeFragment)

                return true
            }
            R.id.menu_categories -> {
                item?.setIcon(R.drawable.ic_menu_categories)
                showFragment(CategoriesFragment())

                return true
            }
            R.id.menu_search -> {
@@ -311,17 +265,4 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS
            }
        }, 2000)
    }

    /*
    * get Accent color from OS
    *
    *  */
    private fun getAccentColor() {

        accentColorOS=this.resources.getColor(R.color.colorAccent);



    }

}
+69 −0
Original line number Diff line number Diff line
/*
    Copyright (C) 2019  e Foundation

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */

package foundation.e.apps.api

import android.content.Context
import android.os.Build
import com.google.gson.Gson
import com.google.gson.JsonParser
import foundation.e.apps.application.model.Application
import foundation.e.apps.application.model.data.BasicData
import foundation.e.apps.application.model.release.ReleaseData
import foundation.e.apps.applicationmanager.ApplicationManager
import foundation.e.apps.utils.*
import java.io.InputStreamReader


class GitlabDataRequest {


    fun requestGmsCoreRelease(callback: (Error?, GitlabDataResult?) -> Unit) = try {
        val url = Constants.RELEASE_API + Constants.MICROG_ID + Constants.RELEASE_ENDPOINT
        val urlConnection = Common.createConnection(url, Constants.REQUEST_METHOD_GET)
        val isr = InputStreamReader(urlConnection.inputStream)
        val element = JsonParser().parse(isr)

        val releaseList: List<ReleaseData> = Gson().fromJson(element.toString(),
                Array<ReleaseData>::class.java).toList()
        urlConnection.disconnect()
        var buildTag = Build.TAGS.split("-").toTypedArray();
        val osReleaseType = buildTag[0];
        var releaseUrl = ""

        releaseList[0].assets.links.forEach {
            if (it.name.contains(osReleaseType)) {
                releaseUrl = it.url
            }
        }


        callback.invoke(null, GitlabDataResult(SystemAppDataSource.createDataSource(Constants.MICROG_ID.toString(),
                releaseList[0].tag_name, Constants.MICROG_ICON_URI, releaseUrl)))

    } catch (e: Exception) {
        callback.invoke(Error.findError(e), null)
    }

    class GitlabDataResult(private val data: BasicData) {
        fun getApplications(applicationManager: ApplicationManager, context: Context): ArrayList<Application> {
            return ApplicationParser.parseSystemAppData(applicationManager, context, data)
        }
    }


}
Loading