Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
43edf11275 | ||
|
|
32ec4c6715 | ||
|
|
84ac57d69e | ||
|
|
328e7745b7 | ||
|
|
ccf22eaef4 | ||
|
|
c89d42f368 | ||
|
|
41192ea7f5 | ||
|
|
7840987a7c | ||
|
|
fcbe0a7f55 | ||
|
|
f12894c95d | ||
|
|
40f139fda2 | ||
|
|
b8507a371e | ||
|
|
e5a71ce906 | ||
|
|
f9e708fe1e | ||
|
|
50ba6f2bd2 | ||
|
|
2484371f8c | ||
|
|
ba675c4212 | ||
|
|
6f9bc3135a | ||
|
|
4475d4d018 | ||
|
|
08e45db49d | ||
|
|
85c76065a5 | ||
|
|
13582c3f1b |
No files matched your search
@@ -7,22 +7,36 @@ jobs:
|
||||
name: Build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-java@v3
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Java 11
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: 11
|
||||
|
||||
- name: Setup Android SDK Tools
|
||||
uses: android-actions/setup-android@v2
|
||||
|
||||
- name: Install NDK
|
||||
run: |
|
||||
echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;24.0.8215888" --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null
|
||||
- uses: gradle/gradle-build-action@v2
|
||||
|
||||
- name: Gradle Build
|
||||
uses: gradle/gradle-build-action@v2
|
||||
- run: |
|
||||
git submodule update --init --recursive
|
||||
gradle assembleRelease
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
- name: Update ARM64
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: github-${{ github.sha }}
|
||||
path: app/build/outputs/apk/release/app-arm64-v8a-release-unsigned.apk
|
||||
name: arm64-${{ github.sha }}
|
||||
path: app/build/outputs/apk/release/app-arm64-v8a-release.apk
|
||||
|
||||
- name: Update x86_64
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: x86_64-${{ github.sha }}
|
||||
path: app/build/outputs/apk/release/app-x86_64-release.apk
|
||||
@@ -0,0 +1,42 @@
|
||||
name: Releases
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "*"
|
||||
|
||||
jobs:
|
||||
linux:
|
||||
name: Build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Java 11
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: 11
|
||||
|
||||
- name: Setup Android SDK Tools
|
||||
uses: android-actions/setup-android@v2
|
||||
|
||||
- name: Install NDK
|
||||
run: |
|
||||
echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;24.0.8215888" --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null
|
||||
|
||||
- name: Gradle Build
|
||||
uses: gradle/gradle-build-action@v2
|
||||
- run: |
|
||||
git submodule update --init --recursive
|
||||
gradle assembleRelease
|
||||
|
||||
- name: Releases
|
||||
uses: softprops/action-gh-release@v0.1.14
|
||||
with:
|
||||
body: Bump Version
|
||||
prerelease: true
|
||||
files: |
|
||||
app/build/outputs/apk/release/app-arm64-v8a-release.apk
|
||||
app/build/outputs/apk/release/app-x86_64-release.apk
|
||||
@@ -1,5 +1,6 @@
|
||||
# EhViewer
|
||||
|
||||
[](https://www.codefactor.io/repository/github/asuka-mio/ehviewer)
|
||||

|
||||
|
||||
这是一个 E-Hentai Android 平台的浏览器
|
||||
|
||||
+23
-16
@@ -22,22 +22,24 @@ android {
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
if (localProperties.getProperty("storeFile") != null) {
|
||||
sign {
|
||||
storeFile file(localProperties.getProperty("storeFile"))
|
||||
storePassword localProperties.getProperty("storePassword")
|
||||
keyAlias localProperties.getProperty("keyAlias")
|
||||
keyPassword localProperties.getProperty("keyPassword")
|
||||
storeFile file(signStoreFile)
|
||||
storePassword signStorePassword
|
||||
keyAlias signkeyAlias
|
||||
keyPassword signkeyPassword
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
compose true
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
applicationId "io.github.nekoinverter.ehviewer"
|
||||
minSdkVersion 31
|
||||
targetSdkVersion 32
|
||||
versionCode 114518
|
||||
versionName "1.7.26.9"
|
||||
versionCode 114519
|
||||
versionName "1.7.26.10"
|
||||
resConfigs 'zh', 'zh-rCN', 'zh-rHK', 'zh-rTW', 'es', 'ja', 'ko', 'fr', 'de', 'th'
|
||||
}
|
||||
|
||||
@@ -72,17 +74,11 @@ android {
|
||||
minifyEnabled true
|
||||
shrinkResources true
|
||||
proguardFiles 'proguard-rules.pro'
|
||||
if (localProperties.getProperty("storeFile") != null) {
|
||||
signingConfig signingConfigs.sign
|
||||
}
|
||||
signingConfig signingConfigs.sign
|
||||
}
|
||||
debug {
|
||||
applicationIdSuffix ".debug"
|
||||
if (localProperties.getProperty("storeFile") != null) {
|
||||
signingConfig signingConfigs.sign
|
||||
} else {
|
||||
signingConfig signingConfigs.debug
|
||||
}
|
||||
signingConfig signingConfigs.debug
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,6 +87,10 @@ android {
|
||||
java.srcDirs += 'src/main/java-gen'
|
||||
}
|
||||
}
|
||||
|
||||
composeOptions {
|
||||
kotlinCompilerExtensionVersion compose
|
||||
}
|
||||
namespace 'com.hippo.ehviewer'
|
||||
}
|
||||
|
||||
@@ -100,6 +100,7 @@ tasks.withType(JavaCompile) {
|
||||
|
||||
dependencies {
|
||||
implementation 'androidx.activity:activity:1.4.0'
|
||||
implementation "androidx.activity:activity-compose:1.4.0"
|
||||
implementation 'androidx.biometric:biometric:1.1.0'
|
||||
implementation 'androidx.browser:browser:1.4.0'
|
||||
implementation 'androidx.core:core:1.7.0'
|
||||
@@ -138,6 +139,12 @@ dependencies {
|
||||
implementation 'org.greenrobot:greendao:3.3.0'
|
||||
implementation 'org.jsoup:jsoup:1.15.1'
|
||||
implementation projects.native
|
||||
|
||||
implementation "androidx.compose.material3:material3:1.0.0-alpha12"
|
||||
|
||||
implementation "androidx.compose.ui:ui:$compose"
|
||||
implementation "androidx.compose.ui:ui-util:$compose"
|
||||
implementation "androidx.compose.animation:animation-graphics:$compose"
|
||||
}
|
||||
|
||||
configurations.all {
|
||||
|
||||
Binary file not shown.
@@ -457,14 +457,6 @@ public class Settings {
|
||||
putBoolean(KEY_SELECT_SITE, value);
|
||||
}
|
||||
|
||||
public static boolean getQuickSearchTip() {
|
||||
return getBoolean(KEY_QUICK_SEARCH_TIP, DEFAULT_QUICK_SEARCH_TIP);
|
||||
}
|
||||
|
||||
public static void putQuickSearchTip(boolean value) {
|
||||
putBoolean(KEY_QUICK_SEARCH_TIP, value);
|
||||
}
|
||||
|
||||
public static int getTheme() {
|
||||
return getIntFromStr(KEY_THEME, DEFAULT_THEME);
|
||||
}
|
||||
|
||||
@@ -709,15 +709,10 @@ public final class GalleryListScene extends BaseScene
|
||||
if (null == context) {
|
||||
return;
|
||||
}
|
||||
final CheckBoxDialogBuilder builder = new CheckBoxDialogBuilder(
|
||||
context, getString(R.string.add_quick_search_tip), getString(R.string.get_it), false);
|
||||
final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context);
|
||||
builder.setMessage(R.string.add_quick_search_tip);
|
||||
builder.setTitle(R.string.readme);
|
||||
builder.setPositiveButton(android.R.string.ok, (dialog, which) -> {
|
||||
if (builder.isChecked()) {
|
||||
Settings.putQuickSearchTip(false);
|
||||
}
|
||||
showAddQuickSearchDialog(adapter, recyclerView, tip);
|
||||
}).show();
|
||||
builder.show();
|
||||
}
|
||||
|
||||
|
||||
@@ -823,11 +818,9 @@ public final class GalleryListScene extends BaseScene
|
||||
toolbar.setOnMenuItemClickListener(item -> {
|
||||
int id = item.getItemId();
|
||||
if (id == R.id.action_add) {
|
||||
if (Settings.getQuickSearchTip()) {
|
||||
showQuickSearchTipDialog(qsDrawerAdapter, recyclerView, tip);
|
||||
} else {
|
||||
showAddQuickSearchDialog(qsDrawerAdapter, recyclerView, tip);
|
||||
}
|
||||
showAddQuickSearchDialog(qsDrawerAdapter, recyclerView, tip);
|
||||
} else if (id == R.id.action_help) {
|
||||
showQuickSearchTipDialog(qsDrawerAdapter, recyclerView, tip);
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
@@ -15,103 +15,72 @@
|
||||
*/
|
||||
package com.hippo.ehviewer.widget
|
||||
|
||||
import com.hippo.easyrecyclerview.EasyRecyclerView
|
||||
import com.google.android.material.tabs.TabLayout.OnTabSelectedListener
|
||||
import android.view.LayoutInflater
|
||||
import com.google.android.material.chip.ChipGroup
|
||||
import com.hippo.widget.RadioGridGroup
|
||||
import com.google.android.material.tabs.TabLayout
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import androidx.recyclerview.widget.DefaultItemAnimator
|
||||
import com.hippo.ehviewer.R
|
||||
import com.hippo.easyrecyclerview.MarginItemDecoration
|
||||
import android.view.ViewGroup
|
||||
import android.util.SparseArray
|
||||
import android.os.Parcelable
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.*
|
||||
import kotlin.Throws
|
||||
import com.hippo.ehviewer.client.exception.EhException
|
||||
import com.hippo.ehviewer.client.data.ListUrlBuilder
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import androidx.annotation.IntDef
|
||||
import androidx.core.content.edit
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.recyclerview.widget.DefaultItemAnimator
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.google.android.material.chip.Chip
|
||||
import com.google.android.material.chip.ChipGroup
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.switchmaterial.SwitchMaterial
|
||||
import com.google.android.material.tabs.TabLayout
|
||||
import com.google.android.material.tabs.TabLayout.OnTabSelectedListener
|
||||
import com.hippo.easyrecyclerview.EasyRecyclerView
|
||||
import com.hippo.easyrecyclerview.MarginItemDecoration
|
||||
import com.hippo.easyrecyclerview.SimpleHolder
|
||||
import com.hippo.ehviewer.R
|
||||
import com.hippo.ehviewer.client.EhConfig
|
||||
import com.hippo.ehviewer.client.data.ListUrlBuilder
|
||||
import com.hippo.ehviewer.client.exception.EhException
|
||||
import com.hippo.widget.RadioGridGroup
|
||||
import com.hippo.yorozuya.NumberUtils
|
||||
import com.hippo.yorozuya.ViewUtils
|
||||
import java.lang.IndexOutOfBoundsException
|
||||
|
||||
class SearchLayout : EasyRecyclerView, CompoundButton.OnCheckedChangeListener, View.OnClickListener,
|
||||
@SuppressLint("InflateParams")
|
||||
class SearchLayout @JvmOverloads constructor(
|
||||
context: Context, attrs: AttributeSet? = null
|
||||
) : EasyRecyclerView(context, attrs), CompoundButton.OnCheckedChangeListener, View.OnClickListener,
|
||||
ImageSearchLayout.Helper, OnTabSelectedListener {
|
||||
|
||||
private val mInflater : LayoutInflater
|
||||
private val mSharePref : SharedPreferences
|
||||
|
||||
@SearchMode
|
||||
private var mSearchMode = SEARCH_MODE_NORMAL
|
||||
private var mEnableAdvance = false
|
||||
private var mNormalView: View? = null
|
||||
private var mNormalSearchMode: RadioGridGroup? = null
|
||||
private var mNormalSearchModeHelp: ImageView? = null
|
||||
private var mEnableAdvanceSwitch: Switch? = null
|
||||
private var mAdvanceView: View? = null
|
||||
private var mTableAdvanceSearch: AdvanceSearchTable? = null
|
||||
private var mImageView: ImageSearchLayout? = null
|
||||
private var mActionView: View? = null
|
||||
private var mAction: TabLayout? = null
|
||||
private var mLayoutManager: LinearLayoutManager? = null
|
||||
private var mAdapter: SearchAdapter? = null
|
||||
private var mCategoryGroup: ChipGroup
|
||||
private var mNormalView: View
|
||||
private var mNormalSearchMode: RadioGridGroup
|
||||
private var mNormalSearchModeHelp: ImageView
|
||||
private var mEnableAdvanceSwitch: SwitchMaterial
|
||||
private var mAdvanceView: View
|
||||
private var mTableAdvanceSearch: AdvanceSearchTable
|
||||
private var mImageView: ImageSearchLayout
|
||||
private var mActionView: View
|
||||
private var mAction: TabLayout
|
||||
private var mAdapter: SearchAdapter
|
||||
private var mHelper: Helper? = null
|
||||
private val mSharePref: SharedPreferences
|
||||
private val mInflater: LayoutInflater
|
||||
|
||||
private val mCategoryTable : ArrayList<Pair<Int, Int>> = arrayListOf(
|
||||
Pair(EhConfig.DOUJINSHI, R.string.doujinshi),
|
||||
Pair(EhConfig.MANGA, R.string.manga),
|
||||
Pair(EhConfig.ARTIST_CG, R.string.artist_cg),
|
||||
Pair(EhConfig.GAME_CG, R.string.game_cg),
|
||||
Pair(EhConfig.WESTERN, R.string.western),
|
||||
Pair(EhConfig.NON_H, R.string.non_h),
|
||||
Pair(EhConfig.IMAGE_SET, R.string.image_set),
|
||||
Pair(EhConfig.COSPLAY, R.string.cosplay),
|
||||
Pair(EhConfig.ASIAN_PORN, R.string.asian_porn),
|
||||
Pair(EhConfig.MISC, R.string.misc)
|
||||
)
|
||||
|
||||
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
|
||||
init {
|
||||
mSharePref = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
mInflater = LayoutInflater.from(context)
|
||||
init(context)
|
||||
}
|
||||
|
||||
constructor(context: Context, attrs: AttributeSet?, defStyle: Int) : super(
|
||||
context,
|
||||
attrs,
|
||||
defStyle
|
||||
) {
|
||||
mSharePref = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
mInflater = LayoutInflater.from(context)
|
||||
init(context)
|
||||
}
|
||||
|
||||
@SuppressLint("InflateParams")
|
||||
private fun init(context: Context) {
|
||||
val resources = context.resources
|
||||
mLayoutManager = SearchLayoutManager(context)
|
||||
layoutManager = SearchLayoutManager(context)
|
||||
mAdapter = SearchAdapter()
|
||||
mAdapter!!.setHasStableIds(true)
|
||||
layoutManager = mLayoutManager
|
||||
mAdapter.setHasStableIds(true)
|
||||
adapter = mAdapter
|
||||
setHasFixedSize(true)
|
||||
clipToPadding = false
|
||||
(itemAnimator as DefaultItemAnimator?)!!.supportsChangeAnimations = false
|
||||
(itemAnimator as DefaultItemAnimator?)?.supportsChangeAnimations = false
|
||||
val interval = resources.getDimensionPixelOffset(R.dimen.search_layout_interval)
|
||||
val paddingH = resources.getDimensionPixelOffset(R.dimen.search_layout_margin_h)
|
||||
val paddingV = resources.getDimensionPixelOffset(R.dimen.search_layout_margin_v)
|
||||
@@ -120,13 +89,10 @@ class SearchLayout : EasyRecyclerView, CompoundButton.OnCheckedChangeListener, V
|
||||
)
|
||||
addItemDecoration(decoration)
|
||||
decoration.applyPaddings(this)
|
||||
|
||||
// Create normal view
|
||||
val normalView = mInflater.inflate(R.layout.search_normal, null)
|
||||
mNormalView = normalView
|
||||
mNormalView = mInflater.inflate(R.layout.search_normal, null)
|
||||
val mCategoryStored = mSharePref.getInt(SEARCH_CATEGORY_PREF, EhConfig.ALL_CATEGORY)
|
||||
|
||||
val mCategoryGroup = normalView.findViewById(R.id.search_category_chipgroup) as ChipGroup
|
||||
mCategoryGroup = mNormalView.findViewById(R.id.search_category_chipgroup)
|
||||
for (mPair in mCategoryTable) {
|
||||
val mChip = IdentifiedChip(context)
|
||||
mChip.isCheckable = true
|
||||
@@ -142,46 +108,44 @@ class SearchLayout : EasyRecyclerView, CompoundButton.OnCheckedChangeListener, V
|
||||
}
|
||||
mSharePref.edit { putInt(SEARCH_CATEGORY_PREF, mCategory) }
|
||||
}
|
||||
|
||||
mNormalSearchMode = normalView.findViewById(R.id.normal_search_mode)
|
||||
mNormalSearchModeHelp = normalView.findViewById(R.id.normal_search_mode_help)
|
||||
mEnableAdvanceSwitch = normalView.findViewById(R.id.search_enable_advance)
|
||||
mNormalSearchModeHelp!!.setOnClickListener(this)
|
||||
mEnableAdvanceSwitch!!.setOnCheckedChangeListener(this)
|
||||
mEnableAdvanceSwitch!!.switchPadding = resources.getDimensionPixelSize(R.dimen.switch_padding)
|
||||
|
||||
mNormalSearchMode = mNormalView.findViewById(R.id.normal_search_mode)
|
||||
mNormalSearchModeHelp = mNormalView.findViewById(R.id.normal_search_mode_help)
|
||||
mEnableAdvanceSwitch = mNormalView.findViewById(R.id.search_enable_advance)
|
||||
mNormalSearchModeHelp.setOnClickListener(this)
|
||||
mEnableAdvanceSwitch.setOnCheckedChangeListener(this)
|
||||
mEnableAdvanceSwitch.switchPadding =
|
||||
resources.getDimensionPixelSize(R.dimen.switch_padding)
|
||||
// Create advance view
|
||||
mAdvanceView = mInflater.inflate(R.layout.search_advance, null)
|
||||
mTableAdvanceSearch = mAdvanceView!!.findViewById(R.id.search_advance_search_table)
|
||||
|
||||
mTableAdvanceSearch = mAdvanceView.findViewById(R.id.search_advance_search_table)
|
||||
// Create image view
|
||||
mImageView = mInflater.inflate(R.layout.search_image, null) as ImageSearchLayout
|
||||
mImageView!!.setHelper(this)
|
||||
|
||||
mImageView.setHelper(this)
|
||||
// Create action view
|
||||
mActionView = mInflater.inflate(R.layout.search_action, null)
|
||||
mActionView!!.layoutParams = LayoutParams(
|
||||
mActionView.layoutParams = LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
)
|
||||
mAction = mActionView!!.findViewById(R.id.action)
|
||||
mAction!!.addOnTabSelectedListener(this)
|
||||
mAction = mActionView.findViewById(R.id.action)
|
||||
mAction.addOnTabSelectedListener(this)
|
||||
}
|
||||
|
||||
|
||||
fun setHelper(helper: Helper?) {
|
||||
mHelper = helper
|
||||
}
|
||||
|
||||
fun scrollSearchContainerToTop() {
|
||||
mLayoutManager!!.scrollToPositionWithOffset(0, 0)
|
||||
(layoutManager as LinearLayoutManager).scrollToPositionWithOffset(0, 0)
|
||||
}
|
||||
|
||||
fun setImageUri(imageUri: Uri?) {
|
||||
mImageView!!.setImageUri(imageUri)
|
||||
mImageView.setImageUri(imageUri)
|
||||
}
|
||||
|
||||
fun setNormalSearchMode(id: Int) {
|
||||
mNormalSearchMode!!.check(id)
|
||||
mNormalSearchMode.check(id)
|
||||
}
|
||||
|
||||
override fun onSelectImage() {
|
||||
@@ -190,47 +154,15 @@ class SearchLayout : EasyRecyclerView, CompoundButton.OnCheckedChangeListener, V
|
||||
}
|
||||
}
|
||||
|
||||
override fun dispatchSaveInstanceState(container: SparseArray<Parcelable>) {
|
||||
super.dispatchSaveInstanceState(container)
|
||||
mNormalView!!.saveHierarchyState(container)
|
||||
mAdvanceView!!.saveHierarchyState(container)
|
||||
mImageView!!.saveHierarchyState(container)
|
||||
mActionView!!.saveHierarchyState(container)
|
||||
}
|
||||
|
||||
override fun dispatchRestoreInstanceState(container: SparseArray<Parcelable>) {
|
||||
super.dispatchRestoreInstanceState(container)
|
||||
mNormalView!!.restoreHierarchyState(container)
|
||||
mAdvanceView!!.restoreHierarchyState(container)
|
||||
mImageView!!.restoreHierarchyState(container)
|
||||
mActionView!!.restoreHierarchyState(container)
|
||||
}
|
||||
|
||||
override fun onSaveInstanceState(): Parcelable {
|
||||
val state = Bundle()
|
||||
state.putParcelable(STATE_KEY_SUPER, super.onSaveInstanceState())
|
||||
state.putInt(STATE_KEY_SEARCH_MODE, mSearchMode)
|
||||
state.putBoolean(STATE_KEY_ENABLE_ADVANCE, mEnableAdvance)
|
||||
return state
|
||||
}
|
||||
|
||||
override fun onRestoreInstanceState(state: Parcelable) {
|
||||
if (state is Bundle) {
|
||||
super.onRestoreInstanceState(state.getParcelable(STATE_KEY_SUPER))
|
||||
mSearchMode = state.getInt(STATE_KEY_SEARCH_MODE)
|
||||
mEnableAdvance = state.getBoolean(STATE_KEY_ENABLE_ADVANCE)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCheckedChanged(buttonView: CompoundButton, isChecked: Boolean) {
|
||||
if (buttonView === mEnableAdvanceSwitch) {
|
||||
post {
|
||||
mEnableAdvance = isChecked
|
||||
if (mSearchMode == SEARCH_MODE_NORMAL) {
|
||||
if (mEnableAdvance) {
|
||||
mAdapter!!.notifyItemInserted(1)
|
||||
mAdapter.notifyItemInserted(1)
|
||||
} else {
|
||||
mAdapter!!.notifyItemRemoved(1)
|
||||
mAdapter.notifyItemRemoved(1)
|
||||
}
|
||||
if (mHelper != null) {
|
||||
mHelper!!.onChangeSearchMode()
|
||||
@@ -246,7 +178,7 @@ class SearchLayout : EasyRecyclerView, CompoundButton.OnCheckedChangeListener, V
|
||||
urlBuilder.reset()
|
||||
when (mSearchMode) {
|
||||
SEARCH_MODE_NORMAL -> {
|
||||
when (mNormalSearchMode!!.checkedRadioButtonId) {
|
||||
when (mNormalSearchMode.checkedRadioButtonId) {
|
||||
R.id.search_subscription_search -> {
|
||||
urlBuilder.mode = ListUrlBuilder.MODE_SUBSCRIPTION
|
||||
}
|
||||
@@ -262,17 +194,18 @@ class SearchLayout : EasyRecyclerView, CompoundButton.OnCheckedChangeListener, V
|
||||
}
|
||||
urlBuilder.keyword = query
|
||||
urlBuilder.category = PreferenceManager.getDefaultSharedPreferences(context).getInt(
|
||||
SEARCH_CATEGORY_PREF, 0)
|
||||
SEARCH_CATEGORY_PREF, 0
|
||||
)
|
||||
if (mEnableAdvance) {
|
||||
urlBuilder.advanceSearch = mTableAdvanceSearch!!.advanceSearch
|
||||
urlBuilder.minRating = mTableAdvanceSearch!!.minRating
|
||||
urlBuilder.pageFrom = mTableAdvanceSearch!!.pageFrom
|
||||
urlBuilder.pageTo = mTableAdvanceSearch!!.pageTo
|
||||
urlBuilder.advanceSearch = mTableAdvanceSearch.advanceSearch
|
||||
urlBuilder.minRating = mTableAdvanceSearch.minRating
|
||||
urlBuilder.pageFrom = mTableAdvanceSearch.pageFrom
|
||||
urlBuilder.pageTo = mTableAdvanceSearch.pageTo
|
||||
}
|
||||
}
|
||||
SEARCH_MODE_IMAGE -> {
|
||||
urlBuilder.mode = ListUrlBuilder.MODE_IMAGE_SEARCH
|
||||
mImageView!!.formatListUrlBuilder(urlBuilder)
|
||||
mImageView.formatListUrlBuilder(urlBuilder)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -290,11 +223,11 @@ class SearchLayout : EasyRecyclerView, CompoundButton.OnCheckedChangeListener, V
|
||||
}
|
||||
|
||||
fun setSearchMode(@SearchMode mode: Int) {
|
||||
val oldItemCount = mAdapter!!.itemCount
|
||||
val oldItemCount = mAdapter.itemCount
|
||||
mSearchMode = mode
|
||||
val newItemCount = mAdapter!!.itemCount
|
||||
mAdapter!!.notifyItemRangeRemoved(0, oldItemCount - 1)
|
||||
mAdapter!!.notifyItemRangeInserted(0, newItemCount - 1)
|
||||
val newItemCount = mAdapter.itemCount
|
||||
mAdapter.notifyItemRangeRemoved(0, oldItemCount - 1)
|
||||
mAdapter.notifyItemRangeInserted(0, newItemCount - 1)
|
||||
if (mHelper != null) {
|
||||
mHelper!!.onChangeSearchMode()
|
||||
}
|
||||
@@ -370,7 +303,7 @@ class SearchLayout : EasyRecyclerView, CompoundButton.OnCheckedChangeListener, V
|
||||
|
||||
override fun onBindViewHolder(holder: SimpleHolder, position: Int) {
|
||||
if (holder.itemViewType == ITEM_TYPE_ACTION) {
|
||||
mAction!!.selectTab(mAction!!.getTabAt(mSearchMode))
|
||||
mAction.selectTab(mAction.getTabAt(mSearchMode))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -386,15 +319,12 @@ class SearchLayout : EasyRecyclerView, CompoundButton.OnCheckedChangeListener, V
|
||||
inner class IdentifiedChip @JvmOverloads constructor(
|
||||
context: Context, attrs: AttributeSet? = null
|
||||
) : Chip(context, attrs) {
|
||||
var idt = 0
|
||||
var idt = 0
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val SEARCH_MODE_NORMAL = 0
|
||||
const val SEARCH_MODE_IMAGE = 1
|
||||
private const val STATE_KEY_SUPER = "super"
|
||||
private const val STATE_KEY_SEARCH_MODE = "search_mode"
|
||||
private const val STATE_KEY_ENABLE_ADVANCE = "enable_advance"
|
||||
const val SEARCH_CATEGORY_PREF = "search_pref"
|
||||
private const val ITEM_TYPE_NORMAL = 0
|
||||
private const val ITEM_TYPE_NORMAL_ADVANCE = 1
|
||||
@@ -403,6 +333,18 @@ class SearchLayout : EasyRecyclerView, CompoundButton.OnCheckedChangeListener, V
|
||||
private val SEARCH_ITEM_COUNT_ARRAY = intArrayOf(
|
||||
3, 2
|
||||
)
|
||||
private val mCategoryTable: ArrayList<Pair<Int, Int>> = arrayListOf(
|
||||
Pair(EhConfig.DOUJINSHI, R.string.doujinshi),
|
||||
Pair(EhConfig.MANGA, R.string.manga),
|
||||
Pair(EhConfig.ARTIST_CG, R.string.artist_cg),
|
||||
Pair(EhConfig.GAME_CG, R.string.game_cg),
|
||||
Pair(EhConfig.WESTERN, R.string.western),
|
||||
Pair(EhConfig.NON_H, R.string.non_h),
|
||||
Pair(EhConfig.IMAGE_SET, R.string.image_set),
|
||||
Pair(EhConfig.COSPLAY, R.string.cosplay),
|
||||
Pair(EhConfig.ASIAN_PORN, R.string.asian_porn),
|
||||
Pair(EhConfig.MISC, R.string.misc)
|
||||
)
|
||||
private val SEARCH_ITEM_TYPE = arrayOf(
|
||||
intArrayOf(ITEM_TYPE_NORMAL, ITEM_TYPE_NORMAL_ADVANCE, ITEM_TYPE_ACTION), intArrayOf(
|
||||
ITEM_TYPE_IMAGE, ITEM_TYPE_ACTION
|
||||
|
||||
@@ -14,12 +14,10 @@
|
||||
~ limitations under the License.
|
||||
-->
|
||||
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
style="@style/Widget.Material3.CardView.Filled"
|
||||
style="@style/Widget.Material3.CardView.Elevated"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
app:cardBackgroundColor="?android:attr/windowBackground">
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -32,7 +30,6 @@
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:elevation="4dp"
|
||||
android:saveEnabled="false" />
|
||||
|
||||
<FrameLayout
|
||||
|
||||
@@ -70,9 +70,9 @@
|
||||
android:maxLines="5"
|
||||
android:textSize="@dimen/text_little_large" />
|
||||
|
||||
<com.google.android.material.chip.Chip
|
||||
<Button
|
||||
android:id="@+id/uploader"
|
||||
style="@style/Widget.Material3.Chip.Assist"
|
||||
style="@style/Widget.Material3.Button.TextButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/title"
|
||||
@@ -81,17 +81,16 @@
|
||||
android:singleLine="true"
|
||||
android:textAllCaps="true" />
|
||||
|
||||
<com.google.android.material.chip.Chip
|
||||
<Button
|
||||
android:id="@+id/category"
|
||||
style="@style/Widget.Material3.Chip.Assist"
|
||||
style="@style/Widget.Material3.Button.TextButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/uploader"
|
||||
android:layout_alignStart="@id/title"
|
||||
android:layout_below="@id/title"
|
||||
android:layout_toRightOf="@id/uploader"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textAllCaps="true"
|
||||
android:textStyle="bold" />
|
||||
android:textAllCaps="true" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/other_actions"
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<Switch
|
||||
<com.google.android.material.switchmaterial.SwitchMaterial
|
||||
android:id="@+id/search_enable_advance"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -14,20 +14,19 @@
|
||||
~ limitations under the License.
|
||||
-->
|
||||
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item
|
||||
|
||||
android:id="@+id/action_add"
|
||||
android:icon="@drawable/v_plus_dark_x24"
|
||||
android:title="@string/settings"
|
||||
app:showAsAction="always" />
|
||||
android:showAsAction="always" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_default_download_label"
|
||||
android:icon="@drawable/v_download_box_dark_x24"
|
||||
android:title="@string/default_download_label"
|
||||
app:showAsAction="ifRoom" />
|
||||
android:showAsAction="ifRoom" />
|
||||
|
||||
</menu>
|
||||
@@ -14,13 +14,18 @@
|
||||
~ limitations under the License.
|
||||
-->
|
||||
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item
|
||||
android:id="@+id/action_help"
|
||||
android:icon="@drawable/v_help_circle_x24"
|
||||
android:title="@string/add"
|
||||
android:showAsAction="ifRoom" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_add"
|
||||
android:icon="@drawable/v_plus_dark_x24"
|
||||
android:title="@string/add"
|
||||
app:showAsAction="always" />
|
||||
android:showAsAction="always" />
|
||||
|
||||
</menu>
|
||||
@@ -17,14 +17,14 @@
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="save_parse_error_body"
|
||||
android:summary="@string/settings_advanced_save_parse_error_body_summary"
|
||||
android:title="@string/settings_advanced_save_parse_error_body"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="save_crash_log"
|
||||
android:summary="@string/settings_advanced_save_crash_log_summary"
|
||||
@@ -72,7 +72,7 @@
|
||||
android:title="@string/settings_advanced_proxy"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="built_in_hosts_2"
|
||||
android:summary="@string/settings_advanced_built_in_hosts_summary"
|
||||
@@ -86,7 +86,7 @@
|
||||
android:title="@string/settings_advanced_custom_hosts_title"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="domain_fronting"
|
||||
android:summary="@string/settings_advanced_domain_fronting_summary"
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
android:title="@string/settings_download_download_location"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="media_scan"
|
||||
android:title="@string/settings_download_media_scan"
|
||||
@@ -66,7 +66,7 @@
|
||||
app:entryValues="@array/image_resolution_entry_values"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="download_origin_image"
|
||||
android:summary="@string/settings_download_download_origin_image_summary"
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
android:title="@string/dark_theme"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:key="black_dark_theme"
|
||||
android:title="@string/black_dark_theme"
|
||||
app:iconSpaceReserved="false" />
|
||||
@@ -111,27 +111,27 @@
|
||||
app:entryValues="@array/thumb_resolution_entry_values"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="fix_thumb_url"
|
||||
android:title="@string/settings_eh_fix_thumb_url"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="show_jpn_title"
|
||||
android:summary="@string/settings_eh_show_jpn_title_summary"
|
||||
android:title="@string/settings_eh_show_jpn_title"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="show_gallery_pages"
|
||||
android:summary="@string/settings_eh_show_gallery_pages_summary"
|
||||
android:title="@string/settings_eh_show_gallery_pages"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="show_tag_translations"
|
||||
android:summary="@string/settings_eh_show_tag_translations_summary"
|
||||
@@ -151,13 +151,13 @@
|
||||
android:title="@string/settings_eh_filter"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="cellular_network_warning"
|
||||
android:title="@string/settings_eh_metered_network_warning"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="request_news"
|
||||
android:title="@string/settings_request_news_title"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
android:title="@string/settings_privacy_pattern_protection_title"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="enable_secure"
|
||||
android:title="@string/settings_privacy_secure"
|
||||
|
||||
@@ -62,56 +62,56 @@
|
||||
app:entryValues="@array/read_theme_entry_values"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="keep_screen_on"
|
||||
android:title="@string/settings_read_keep_screen_on"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="gallery_show_clock"
|
||||
android:title="@string/settings_read_show_clock"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="gallery_show_progress"
|
||||
android:title="@string/settings_read_show_progress"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="gallery_show_battery"
|
||||
android:title="@string/settings_read_show_battery"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="gallery_show_page_interval"
|
||||
android:title="@string/settings_read_show_page_interval"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="volume_page"
|
||||
android:title="@string/settings_read_volume_page"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:dependency="volume_page"
|
||||
android:key="reserve_volume_page"
|
||||
android:title="@string/settings_read_reverse_volume"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="reading_fullscreen"
|
||||
android:title="@string/settings_read_reading_fullscreen"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="custom_screen_lightness"
|
||||
android:title="@string/settings_read_custom_screen_lightness"
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
buildscript {
|
||||
ext {
|
||||
compose = '1.2.0-beta02'
|
||||
}
|
||||
}
|
||||
|
||||
plugins {
|
||||
id 'com.android.application' version '7.2.0' apply false
|
||||
id 'org.jetbrains.kotlin.android' version '1.6.21' apply false
|
||||
|
||||
@@ -21,3 +21,10 @@ android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
android.enableAppCompileTimeRClass=true
|
||||
android.nonTransitiveRClass=true
|
||||
|
||||
# signing environment variable
|
||||
signStoreFile=keystore/androidkey.jks
|
||||
signStorePassword=000000
|
||||
signkeyAlias=key0
|
||||
signkeyPassword=000000
|
||||
|
||||
+1
-6
@@ -12,12 +12,6 @@ android {
|
||||
targetSdkVersion 32
|
||||
consumerProguardFiles 'proguard-rules.pro'
|
||||
|
||||
externalNativeBuild {
|
||||
cmake {
|
||||
arguments '-DANDROID_STL=c++_static'
|
||||
}
|
||||
}
|
||||
|
||||
ndk {
|
||||
abiFilters 'arm64-v8a', 'x86_64'
|
||||
}
|
||||
@@ -25,6 +19,7 @@ android {
|
||||
|
||||
externalNativeBuild {
|
||||
cmake {
|
||||
version "3.23.1"
|
||||
path 'src/main/jni/CMakeLists.txt'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
project(ehviewer)
|
||||
cmake_minimum_required(VERSION 3.4.1)
|
||||
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Oz -fvisibility=hidden -fvisibility-inlines-hidden -ffunction-sections -fdata-sections")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Oz -fvisibility=hidden -fvisibility-inlines-hidden -ffunction-sections -fdata-sections -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -fno-stack-protector")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden -ffunction-sections -fdata-sections")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden -ffunction-sections -fdata-sections -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -fno-stack-protector")
|
||||
|
||||
add_subdirectory(a7zip)
|
||||
add_subdirectory(image)
|
||||
@@ -10,7 +10,7 @@ add_subdirectory(integrity)
|
||||
|
||||
add_library(${PROJECT_NAME} SHARED main.c)
|
||||
|
||||
target_compile_options(${PROJECT_NAME} PUBLIC -Oz -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions)
|
||||
target_compile_options(${PROJECT_NAME} PUBLIC -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions)
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC a7zip/a7zip image/image integrity)
|
||||
|
||||
|
||||
@@ -14,8 +14,6 @@
|
||||
|
||||
cmake_minimum_required(VERSION 3.4.1)
|
||||
|
||||
include(AndroidNdkModules)
|
||||
android_ndk_import_module_cpufeatures()
|
||||
add_subdirectory(image)
|
||||
add_subdirectory(stream)
|
||||
add_subdirectory(libjpeg-turbo)
|
||||
|
||||
@@ -16,11 +16,11 @@ cmake_minimum_required(VERSION 3.4.1)
|
||||
project(giflib C)
|
||||
|
||||
set(GIFLIB_SOURCES
|
||||
giflib/dgif_lib.c
|
||||
giflib/gif_hash.c
|
||||
giflib/gifalloc.c
|
||||
giflib/openbsd-reallocarray.c
|
||||
)
|
||||
giflib/dgif_lib.c
|
||||
giflib/gif_hash.c
|
||||
giflib/gifalloc.c
|
||||
giflib/openbsd-reallocarray.c
|
||||
)
|
||||
set(GIFLIB_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/giflib)
|
||||
|
||||
add_library(giflib STATIC ${GIFLIB_SOURCES})
|
||||
|
||||
@@ -16,28 +16,28 @@ cmake_minimum_required(VERSION 3.4.1)
|
||||
project(image C)
|
||||
|
||||
set(IMAGE_SOURCES
|
||||
image.c
|
||||
image_utils.c
|
||||
image_plain.c
|
||||
image_jpeg.c
|
||||
image_png.c
|
||||
image_gif.c
|
||||
filter/clahe.c
|
||||
filter/gray.c
|
||||
java_wrapper.c
|
||||
)
|
||||
image.c
|
||||
image_utils.c
|
||||
image_plain.c
|
||||
image_jpeg.c
|
||||
image_png.c
|
||||
image_gif.c
|
||||
filter/clahe.c
|
||||
filter/gray.c
|
||||
java_wrapper.c
|
||||
)
|
||||
set(IMAGE_INCLUDES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
set(IMAGE_LIBRARIES
|
||||
log
|
||||
jnigraphics
|
||||
GLESv2
|
||||
stream
|
||||
libjpeg-turbo
|
||||
libpng
|
||||
giflib
|
||||
)
|
||||
log
|
||||
jnigraphics
|
||||
GLESv2
|
||||
stream
|
||||
libjpeg-turbo
|
||||
libpng
|
||||
giflib
|
||||
)
|
||||
|
||||
add_library(image STATIC ${IMAGE_SOURCES})
|
||||
target_include_directories(image PRIVATE ${IMAGE_INCLUDES})
|
||||
|
||||
@@ -16,194 +16,194 @@ cmake_minimum_required(VERSION 3.4.1)
|
||||
project(libjpeg-turbo C)
|
||||
|
||||
set(LIBJPEG_TURBO_SOURCES
|
||||
libjpeg-turbo/jaricom.c
|
||||
libjpeg-turbo/jcomapi.c
|
||||
libjpeg-turbo/jdapimin.c
|
||||
libjpeg-turbo/jdapistd.c
|
||||
libjpeg-turbo/jdarith.c
|
||||
libjpeg-turbo/jdatasrc.c
|
||||
libjpeg-turbo/jdatasrc-tj.c
|
||||
libjpeg-turbo/jdcoefct.c
|
||||
libjpeg-turbo/jdcolor.c
|
||||
libjpeg-turbo/jddctmgr.c
|
||||
libjpeg-turbo/jdhuff.c
|
||||
libjpeg-turbo/jdinput.c
|
||||
libjpeg-turbo/jdmainct.c
|
||||
libjpeg-turbo/jdmarker.c
|
||||
libjpeg-turbo/jdmaster.c
|
||||
libjpeg-turbo/jdmerge.c
|
||||
libjpeg-turbo/jdphuff.c
|
||||
libjpeg-turbo/jdpostct.c
|
||||
libjpeg-turbo/jdsample.c
|
||||
libjpeg-turbo/jdtrans.c
|
||||
libjpeg-turbo/jerror.c
|
||||
libjpeg-turbo/jfdctflt.c
|
||||
libjpeg-turbo/jfdctfst.c
|
||||
libjpeg-turbo/jfdctint.c
|
||||
libjpeg-turbo/jidctflt.c
|
||||
libjpeg-turbo/jidctfst.c
|
||||
libjpeg-turbo/jidctint.c
|
||||
libjpeg-turbo/jidctred.c
|
||||
libjpeg-turbo/jmemmgr.c
|
||||
libjpeg-turbo/jmemnobs.c
|
||||
libjpeg-turbo/jquant1.c
|
||||
libjpeg-turbo/jquant2.c
|
||||
libjpeg-turbo/jutils.c
|
||||
)
|
||||
libjpeg-turbo/jaricom.c
|
||||
libjpeg-turbo/jcomapi.c
|
||||
libjpeg-turbo/jdapimin.c
|
||||
libjpeg-turbo/jdapistd.c
|
||||
libjpeg-turbo/jdarith.c
|
||||
libjpeg-turbo/jdatasrc.c
|
||||
libjpeg-turbo/jdatasrc-tj.c
|
||||
libjpeg-turbo/jdcoefct.c
|
||||
libjpeg-turbo/jdcolor.c
|
||||
libjpeg-turbo/jddctmgr.c
|
||||
libjpeg-turbo/jdhuff.c
|
||||
libjpeg-turbo/jdinput.c
|
||||
libjpeg-turbo/jdmainct.c
|
||||
libjpeg-turbo/jdmarker.c
|
||||
libjpeg-turbo/jdmaster.c
|
||||
libjpeg-turbo/jdmerge.c
|
||||
libjpeg-turbo/jdphuff.c
|
||||
libjpeg-turbo/jdpostct.c
|
||||
libjpeg-turbo/jdsample.c
|
||||
libjpeg-turbo/jdtrans.c
|
||||
libjpeg-turbo/jerror.c
|
||||
libjpeg-turbo/jfdctflt.c
|
||||
libjpeg-turbo/jfdctfst.c
|
||||
libjpeg-turbo/jfdctint.c
|
||||
libjpeg-turbo/jidctflt.c
|
||||
libjpeg-turbo/jidctfst.c
|
||||
libjpeg-turbo/jidctint.c
|
||||
libjpeg-turbo/jidctred.c
|
||||
libjpeg-turbo/jmemmgr.c
|
||||
libjpeg-turbo/jmemnobs.c
|
||||
libjpeg-turbo/jquant1.c
|
||||
libjpeg-turbo/jquant2.c
|
||||
libjpeg-turbo/jutils.c
|
||||
)
|
||||
set(LIBJPEG_TURBO_INCLUDES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/libjpeg-turbo
|
||||
)
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/libjpeg-turbo
|
||||
)
|
||||
|
||||
if (${ANDROID_ABI} STREQUAL "armeabi-v7a")
|
||||
|
||||
enable_language(ASM)
|
||||
enable_language(ASM)
|
||||
|
||||
add_definitions(-DNEON_INTRINSICS)
|
||||
add_definitions(-DNEON_INTRINSICS)
|
||||
|
||||
set(LIBJPEG_TURBO_SOURCES
|
||||
${LIBJPEG_TURBO_SOURCES}
|
||||
libjpeg-turbo/simd/arm/jccolor-neon.c
|
||||
libjpeg-turbo/simd/arm/jidctred-neon.c
|
||||
libjpeg-turbo/simd/arm/jquanti-neon.c
|
||||
libjpeg-turbo/simd/arm/jidctint-neon.c
|
||||
libjpeg-turbo/simd/arm/jidctfst-neon.c
|
||||
libjpeg-turbo/simd/arm/jfdctint-neon.c
|
||||
libjpeg-turbo/simd/arm/jfdctfst-neon.c
|
||||
libjpeg-turbo/simd/arm/jdsample-neon.c
|
||||
libjpeg-turbo/simd/arm/jdmerge-neon.c
|
||||
libjpeg-turbo/simd/arm/jdcolor-neon.c
|
||||
libjpeg-turbo/simd/arm/jcsample-neon.c
|
||||
libjpeg-turbo/simd/arm/jcphuff-neon.c
|
||||
libjpeg-turbo/simd/arm/jcgray-neon.c
|
||||
libjpeg-turbo/simd/arm/aarch32/jchuff-neon.c
|
||||
libjpeg-turbo/simd/arm/aarch32/jsimd.c
|
||||
)
|
||||
set(LIBJPEG_TURBO_SOURCES
|
||||
${LIBJPEG_TURBO_SOURCES}
|
||||
libjpeg-turbo/simd/arm/jccolor-neon.c
|
||||
libjpeg-turbo/simd/arm/jidctred-neon.c
|
||||
libjpeg-turbo/simd/arm/jquanti-neon.c
|
||||
libjpeg-turbo/simd/arm/jidctint-neon.c
|
||||
libjpeg-turbo/simd/arm/jidctfst-neon.c
|
||||
libjpeg-turbo/simd/arm/jfdctint-neon.c
|
||||
libjpeg-turbo/simd/arm/jfdctfst-neon.c
|
||||
libjpeg-turbo/simd/arm/jdsample-neon.c
|
||||
libjpeg-turbo/simd/arm/jdmerge-neon.c
|
||||
libjpeg-turbo/simd/arm/jdcolor-neon.c
|
||||
libjpeg-turbo/simd/arm/jcsample-neon.c
|
||||
libjpeg-turbo/simd/arm/jcphuff-neon.c
|
||||
libjpeg-turbo/simd/arm/jcgray-neon.c
|
||||
libjpeg-turbo/simd/arm/aarch32/jchuff-neon.c
|
||||
libjpeg-turbo/simd/arm/aarch32/jsimd.c
|
||||
)
|
||||
|
||||
elseif (${ANDROID_ABI} STREQUAL "arm64-v8a")
|
||||
|
||||
enable_language(ASM)
|
||||
enable_language(ASM)
|
||||
|
||||
add_definitions(-DNEON_INTRINSICS)
|
||||
add_definitions(-DNEON_INTRINSICS)
|
||||
|
||||
set(LIBJPEG_TURBO_SOURCES
|
||||
${LIBJPEG_TURBO_SOURCES}
|
||||
libjpeg-turbo/simd/arm/jccolor-neon.c
|
||||
libjpeg-turbo/simd/arm/jidctred-neon.c
|
||||
libjpeg-turbo/simd/arm/jquanti-neon.c
|
||||
libjpeg-turbo/simd/arm/jidctint-neon.c
|
||||
libjpeg-turbo/simd/arm/jidctfst-neon.c
|
||||
libjpeg-turbo/simd/arm/jfdctint-neon.c
|
||||
libjpeg-turbo/simd/arm/jfdctfst-neon.c
|
||||
libjpeg-turbo/simd/arm/jdsample-neon.c
|
||||
libjpeg-turbo/simd/arm/jdmerge-neon.c
|
||||
libjpeg-turbo/simd/arm/jdcolor-neon.c
|
||||
libjpeg-turbo/simd/arm/jcsample-neon.c
|
||||
libjpeg-turbo/simd/arm/jcphuff-neon.c
|
||||
libjpeg-turbo/simd/arm/jcgray-neon.c
|
||||
libjpeg-turbo/simd/arm/aarch64/jchuff-neon.c
|
||||
libjpeg-turbo/simd/arm/aarch64/jsimd.c
|
||||
)
|
||||
set(LIBJPEG_TURBO_SOURCES
|
||||
${LIBJPEG_TURBO_SOURCES}
|
||||
libjpeg-turbo/simd/arm/jccolor-neon.c
|
||||
libjpeg-turbo/simd/arm/jidctred-neon.c
|
||||
libjpeg-turbo/simd/arm/jquanti-neon.c
|
||||
libjpeg-turbo/simd/arm/jidctint-neon.c
|
||||
libjpeg-turbo/simd/arm/jidctfst-neon.c
|
||||
libjpeg-turbo/simd/arm/jfdctint-neon.c
|
||||
libjpeg-turbo/simd/arm/jfdctfst-neon.c
|
||||
libjpeg-turbo/simd/arm/jdsample-neon.c
|
||||
libjpeg-turbo/simd/arm/jdmerge-neon.c
|
||||
libjpeg-turbo/simd/arm/jdcolor-neon.c
|
||||
libjpeg-turbo/simd/arm/jcsample-neon.c
|
||||
libjpeg-turbo/simd/arm/jcphuff-neon.c
|
||||
libjpeg-turbo/simd/arm/jcgray-neon.c
|
||||
libjpeg-turbo/simd/arm/aarch64/jchuff-neon.c
|
||||
libjpeg-turbo/simd/arm/aarch64/jsimd.c
|
||||
)
|
||||
|
||||
elseif (${ANDROID_ABI} STREQUAL "x86")
|
||||
|
||||
enable_language(ASM_NASM)
|
||||
enable_language(ASM_NASM)
|
||||
|
||||
set(LIBJPEG_TURBO_SOURCES
|
||||
${LIBJPEG_TURBO_SOURCES}
|
||||
libjpeg-turbo/simd/i386/jsimd.c
|
||||
libjpeg-turbo/simd/i386/jsimdcpu.asm
|
||||
libjpeg-turbo/simd/i386/jfdctflt-3dn.asm
|
||||
libjpeg-turbo/simd/i386/jidctflt-3dn.asm
|
||||
libjpeg-turbo/simd/i386/jquant-3dn.asm
|
||||
libjpeg-turbo/simd/i386/jccolor-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jcgray-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jcsample-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jdcolor-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jdmerge-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jdsample-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jfdctfst-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jfdctint-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jidctfst-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jidctint-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jidctred-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jquant-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jfdctflt-sse.asm
|
||||
libjpeg-turbo/simd/i386/jidctflt-sse.asm
|
||||
libjpeg-turbo/simd/i386/jquant-sse.asm
|
||||
libjpeg-turbo/simd/i386/jccolor-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jcgray-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jchuff-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jcphuff-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jcsample-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jdcolor-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jdmerge-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jdsample-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jfdctfst-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jfdctint-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jidctflt-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jidctfst-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jidctint-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jidctred-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jquantf-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jquanti-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jccolor-avx2.asm
|
||||
libjpeg-turbo/simd/i386/jcgray-avx2.asm
|
||||
libjpeg-turbo/simd/i386/jcsample-avx2.asm
|
||||
libjpeg-turbo/simd/i386/jdcolor-avx2.asm
|
||||
libjpeg-turbo/simd/i386/jdmerge-avx2.asm
|
||||
libjpeg-turbo/simd/i386/jdsample-avx2.asm
|
||||
libjpeg-turbo/simd/i386/jfdctint-avx2.asm
|
||||
libjpeg-turbo/simd/i386/jidctint-avx2.asm
|
||||
libjpeg-turbo/simd/i386/jquanti-avx2.asm
|
||||
)
|
||||
set(LIBJPEG_TURBO_SOURCES
|
||||
${LIBJPEG_TURBO_SOURCES}
|
||||
libjpeg-turbo/simd/i386/jsimd.c
|
||||
libjpeg-turbo/simd/i386/jsimdcpu.asm
|
||||
libjpeg-turbo/simd/i386/jfdctflt-3dn.asm
|
||||
libjpeg-turbo/simd/i386/jidctflt-3dn.asm
|
||||
libjpeg-turbo/simd/i386/jquant-3dn.asm
|
||||
libjpeg-turbo/simd/i386/jccolor-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jcgray-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jcsample-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jdcolor-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jdmerge-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jdsample-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jfdctfst-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jfdctint-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jidctfst-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jidctint-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jidctred-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jquant-mmx.asm
|
||||
libjpeg-turbo/simd/i386/jfdctflt-sse.asm
|
||||
libjpeg-turbo/simd/i386/jidctflt-sse.asm
|
||||
libjpeg-turbo/simd/i386/jquant-sse.asm
|
||||
libjpeg-turbo/simd/i386/jccolor-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jcgray-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jchuff-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jcphuff-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jcsample-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jdcolor-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jdmerge-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jdsample-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jfdctfst-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jfdctint-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jidctflt-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jidctfst-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jidctint-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jidctred-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jquantf-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jquanti-sse2.asm
|
||||
libjpeg-turbo/simd/i386/jccolor-avx2.asm
|
||||
libjpeg-turbo/simd/i386/jcgray-avx2.asm
|
||||
libjpeg-turbo/simd/i386/jcsample-avx2.asm
|
||||
libjpeg-turbo/simd/i386/jdcolor-avx2.asm
|
||||
libjpeg-turbo/simd/i386/jdmerge-avx2.asm
|
||||
libjpeg-turbo/simd/i386/jdsample-avx2.asm
|
||||
libjpeg-turbo/simd/i386/jfdctint-avx2.asm
|
||||
libjpeg-turbo/simd/i386/jidctint-avx2.asm
|
||||
libjpeg-turbo/simd/i386/jquanti-avx2.asm
|
||||
)
|
||||
|
||||
set(CMAKE_ASM_NASM_FLAGS "-DELF -DPIC -I${CMAKE_CURRENT_SOURCE_DIR}/libjpeg-turbo/simd/nasm")
|
||||
set(CMAKE_ASM_NASM_FLAGS "-DELF -DPIC -I${CMAKE_CURRENT_SOURCE_DIR}/libjpeg-turbo/simd/nasm")
|
||||
|
||||
elseif (${ANDROID_ABI} STREQUAL "x86_64")
|
||||
|
||||
enable_language(ASM_NASM)
|
||||
enable_language(ASM_NASM)
|
||||
|
||||
set(LIBJPEG_TURBO_SOURCES
|
||||
${LIBJPEG_TURBO_SOURCES}
|
||||
libjpeg-turbo/simd/x86_64/jsimd.c
|
||||
libjpeg-turbo/simd/x86_64/jsimdcpu.asm
|
||||
libjpeg-turbo/simd/x86_64/jfdctflt-sse.asm
|
||||
libjpeg-turbo/simd/x86_64/jccolor-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jcgray-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jchuff-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jcphuff-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jcsample-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jdcolor-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jdmerge-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jdsample-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jfdctfst-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jfdctint-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jidctflt-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jidctfst-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jidctint-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jidctred-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jquantf-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jquanti-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jccolor-avx2.asm
|
||||
libjpeg-turbo/simd/x86_64/jcgray-avx2.asm
|
||||
libjpeg-turbo/simd/x86_64/jcsample-avx2.asm
|
||||
libjpeg-turbo/simd/x86_64/jdcolor-avx2.asm
|
||||
libjpeg-turbo/simd/x86_64/jdmerge-avx2.asm
|
||||
libjpeg-turbo/simd/x86_64/jdsample-avx2.asm
|
||||
libjpeg-turbo/simd/x86_64/jfdctint-avx2.asm
|
||||
libjpeg-turbo/simd/x86_64/jidctint-avx2.asm
|
||||
libjpeg-turbo/simd/x86_64/jquanti-avx2.asm
|
||||
)
|
||||
set(LIBJPEG_TURBO_SOURCES
|
||||
${LIBJPEG_TURBO_SOURCES}
|
||||
libjpeg-turbo/simd/x86_64/jsimd.c
|
||||
libjpeg-turbo/simd/x86_64/jsimdcpu.asm
|
||||
libjpeg-turbo/simd/x86_64/jfdctflt-sse.asm
|
||||
libjpeg-turbo/simd/x86_64/jccolor-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jcgray-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jchuff-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jcphuff-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jcsample-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jdcolor-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jdmerge-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jdsample-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jfdctfst-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jfdctint-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jidctflt-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jidctfst-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jidctint-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jidctred-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jquantf-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jquanti-sse2.asm
|
||||
libjpeg-turbo/simd/x86_64/jccolor-avx2.asm
|
||||
libjpeg-turbo/simd/x86_64/jcgray-avx2.asm
|
||||
libjpeg-turbo/simd/x86_64/jcsample-avx2.asm
|
||||
libjpeg-turbo/simd/x86_64/jdcolor-avx2.asm
|
||||
libjpeg-turbo/simd/x86_64/jdmerge-avx2.asm
|
||||
libjpeg-turbo/simd/x86_64/jdsample-avx2.asm
|
||||
libjpeg-turbo/simd/x86_64/jfdctint-avx2.asm
|
||||
libjpeg-turbo/simd/x86_64/jidctint-avx2.asm
|
||||
libjpeg-turbo/simd/x86_64/jquanti-avx2.asm
|
||||
)
|
||||
|
||||
set(CMAKE_ASM_NASM_FLAGS "-D__x86_64__ -DELF -DPIC -I${CMAKE_CURRENT_SOURCE_DIR}/libjpeg-turbo/simd/nasm")
|
||||
set(CMAKE_ASM_NASM_FLAGS "-D__x86_64__ -DELF -DPIC -I${CMAKE_CURRENT_SOURCE_DIR}/libjpeg-turbo/simd/nasm")
|
||||
|
||||
else ()
|
||||
|
||||
set(LIBJPEG_TURBO_SOURCES
|
||||
${LIBJPEG_TURBO_SOURCES}
|
||||
libjpeg-turbo/jsimd_none.c
|
||||
)
|
||||
set(LIBJPEG_TURBO_SOURCES
|
||||
${LIBJPEG_TURBO_SOURCES}
|
||||
libjpeg-turbo/jsimd_none.c
|
||||
)
|
||||
|
||||
endif ()
|
||||
|
||||
|
||||
@@ -16,77 +16,78 @@ cmake_minimum_required(VERSION 3.4.1)
|
||||
project(libpng C)
|
||||
|
||||
set(LIBPNG_SOURCES
|
||||
libpng/png.c
|
||||
libpng/pngerror.c
|
||||
libpng/pngget.c
|
||||
libpng/pngmem.c
|
||||
libpng/pngpread.c
|
||||
libpng/pngread.c
|
||||
libpng/pngrio.c
|
||||
libpng/pngrtran.c
|
||||
libpng/pngrutil.c
|
||||
libpng/pngset.c
|
||||
libpng/pngtrans.c
|
||||
)
|
||||
libpng/png.c
|
||||
libpng/pngerror.c
|
||||
libpng/pngget.c
|
||||
libpng/pngmem.c
|
||||
libpng/pngpread.c
|
||||
libpng/pngread.c
|
||||
libpng/pngrio.c
|
||||
libpng/pngrtran.c
|
||||
libpng/pngrutil.c
|
||||
libpng/pngset.c
|
||||
libpng/pngtrans.c
|
||||
)
|
||||
|
||||
set(LIBPNG_INCLUDES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/libpng
|
||||
)
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/libpng
|
||||
)
|
||||
set(LIBPNG_DEFINITIONS)
|
||||
set(LIBPNG_LIBRARIES z)
|
||||
|
||||
if (${ANDROID_ABI} STREQUAL "armeabi-v7a")
|
||||
|
||||
enable_language(ASM)
|
||||
enable_language(ASM)
|
||||
|
||||
set(LIBPNG_SOURCES
|
||||
${LIBPNG_SOURCES}
|
||||
libpng/arm/arm_init.c
|
||||
libpng/arm/filter_neon.S
|
||||
)
|
||||
set(LIBPNG_INCLUDES
|
||||
${LIBPNG_INCLUDES}
|
||||
${ANDROID_NDK}/sources/android/cpufeatures
|
||||
)
|
||||
set(LIBPNG_DEFINITIONS
|
||||
${LIBPNG_DEFINITIONS}
|
||||
-DPNG_ARM_NEON_API_SUPPORTED
|
||||
-DPNG_ARM_NEON_CHECK_SUPPORTED
|
||||
-DPNG_ARM_NEON_OPT=1
|
||||
-DPNG_ARM_NEON_IMPLEMENTATION=2
|
||||
-DPNG_ARM_NEON_FILE=\"contrib/arm-neon/android-ndk.c\"
|
||||
)
|
||||
set(LIBPNG_LIBRARIES
|
||||
${LIBPNG_LIBRARIES}
|
||||
cpufeatures
|
||||
)
|
||||
set(LIBPNG_SOURCES
|
||||
${LIBPNG_SOURCES}
|
||||
libpng/arm/arm_init.c
|
||||
libpng/arm/filter_neon.S
|
||||
${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c
|
||||
)
|
||||
set(LIBPNG_INCLUDES
|
||||
${LIBPNG_INCLUDES}
|
||||
${ANDROID_NDK}/sources/android/cpufeatures
|
||||
)
|
||||
set(LIBPNG_DEFINITIONS
|
||||
${LIBPNG_DEFINITIONS}
|
||||
-DPNG_ARM_NEON_API_SUPPORTED
|
||||
-DPNG_ARM_NEON_CHECK_SUPPORTED
|
||||
-DPNG_ARM_NEON_OPT=1
|
||||
-DPNG_ARM_NEON_IMPLEMENTATION=2
|
||||
-DPNG_ARM_NEON_FILE=\"contrib/arm-neon/android-ndk.c\"
|
||||
)
|
||||
set(LIBPNG_LIBRARIES
|
||||
${LIBPNG_LIBRARIES}
|
||||
)
|
||||
|
||||
elseif (${ANDROID_ABI} STREQUAL "arm64-v8a")
|
||||
|
||||
enable_language(ASM)
|
||||
enable_language(ASM)
|
||||
|
||||
set(LIBPNG_SOURCES
|
||||
${LIBPNG_SOURCES}
|
||||
libpng/arm/arm_init.c
|
||||
libpng/arm/filter_neon_intrinsics.c
|
||||
libpng/arm/palette_neon_intrinsics.c
|
||||
)
|
||||
set(LIBPNG_INCLUDES
|
||||
${LIBPNG_INCLUDES}
|
||||
${ANDROID_NDK}/sources/android/cpufeatures
|
||||
)
|
||||
set(LIBPNG_DEFINITIONS
|
||||
${LIBPNG_DEFINITIONS}
|
||||
-DPNG_ARM_NEON_API_SUPPORTED
|
||||
-DPNG_ARM_NEON_CHECK_SUPPORTED
|
||||
-DPNG_ARM_NEON_OPT=1
|
||||
-DPNG_ARM_NEON_IMPLEMENTATION=1
|
||||
-DPNG_ARM_NEON_FILE=\"contrib/arm-neon/android-ndk.c\"
|
||||
)
|
||||
set(LIBPNG_LIBRARIES
|
||||
${LIBPNG_LIBRARIES}
|
||||
cpufeatures
|
||||
)
|
||||
set(LIBPNG_SOURCES
|
||||
${LIBPNG_SOURCES}
|
||||
libpng/arm/arm_init.c
|
||||
libpng/arm/filter_neon_intrinsics.c
|
||||
libpng/arm/palette_neon_intrinsics.c
|
||||
${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c
|
||||
)
|
||||
set(LIBPNG_INCLUDES
|
||||
${LIBPNG_INCLUDES}
|
||||
${ANDROID_NDK}/sources/android/cpufeatures
|
||||
)
|
||||
set(LIBPNG_DEFINITIONS
|
||||
${LIBPNG_DEFINITIONS}
|
||||
-DPNG_ARM_NEON_API_SUPPORTED
|
||||
-DPNG_ARM_NEON_CHECK_SUPPORTED
|
||||
-DPNG_ARM_NEON_OPT=1
|
||||
-DPNG_ARM_NEON_IMPLEMENTATION=1
|
||||
-DPNG_ARM_NEON_FILE=\"contrib/arm-neon/android-ndk.c\"
|
||||
)
|
||||
set(LIBPNG_LIBRARIES
|
||||
${LIBPNG_LIBRARIES}
|
||||
)
|
||||
|
||||
endif ()
|
||||
|
||||
|
||||
Reference in new issue
Block a user