У меня есть два разных варианта моего приложения для Android: lite и pro. В приложении у меня есть класс с именем customFragment.java, который включен в основной (не различается между вариантами) и включает также следующий код:
import haibison.android.lockpattern.LockPatternActivity;
private void showLockPattern() {
if (BuildConfig.IS_VERSION_PRO) {
Intent intent = new Intent(LockPatternActivity.ACTION_VERIFY_CAPTCHA, null, this, LockPatternActivity.class);
startActivityForResult(intent, PATTERN_ID);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PATTERN_ID && resultCode == Activity.RESULT_OK) {
Log.i("App", "OK!");
}
}
А в app.gradle я включил библиотеку LockPattern только для версии pro:
dependencies {
proCompile 'com.github.haibison:android-lockpattern:6.0.0'
}
Класс, который я описал, одинаков для обоих вариантов (то есть в основной папке), так как он довольно большой, и я не хочу дублировать код в обоих вариантах. Вариант pro строится успешно, но вариант lite показывает ошибку, поскольку я также не импортирую зависимость для варианта lite.
Одно из решений, которое я вижу, состоит в том, чтобы добавить библиотеку шаблонов блокировки в оба варианта, а затем использовать proGuard, удалив ее из варианта lite. Хотя я считаю, что это может сработать, это, вероятно, не самый гладкий вариант. Конечно, я мог бы просто игнорировать накладные расходы на неиспользуемую библиотеку в версии lite.
Как бы вы решили эту проблему? Я долго искал в stackoverflow, но не нашел ответа, поэтому впервые за несколько лет решил зарегистрироваться и задать вопрос.