Coder Social home page Coder Social logo

twoeightnine / xvii Goto Github PK

View Code? Open in Web Editor NEW
79.0 9.0 13.0 14.22 MB

android messenger for vk social network

Home Page: https://play.google.com/store/apps/details?id=com.twoeightnine.root.xvii

License: GNU General Public License v3.0

Kotlin 98.21% Java 1.79%
android social-network client kotlin vk messenger xvii

xvii's Introduction

xvii messenger for vk

xvii is a messenger for those who want to be online on the go! no feed, no stories, no walls, no likes, no clips. only messaging and features that are necessary!

extra features:

  • secret chats
  • custom appearance
  • stealth features
  • multiple accounts
  • self-destructing and scheduled messages
  • journal of events
  • no ads, no trackers

download now

useful links

license

xvii - messenger for vk
Copyright (C) 2021  TwoEightNine

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/>.

xvii's People

Contributors

butyoutried avatar twoeightnine avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xvii's Issues

[IDEA] Decrease background RAM usage

Describe the idea you'd like
Работая в фоновом режиме, приложение потребляет в среднем почти 300МБ оперативной памяти. Значение посмотрел в разделе Memory use в Developer options. Хотелось бы снизить это потребление до минимально возможных значений. Например, Kate Mobile практически не потребляет память в фоне - полагаю, это связано в том числе с тем, что Kate Mobile использует Google-сервисы для получения уведомлений, а xvii использует собственный background service.

Некоторые пользователи полностью отключают уведомления, и background service им вообще не нужен. Можно добавить пункт об отключении background service в настройки приложения. Это должно решить конкретно мой use case и звучит несложным с точки зрения реализации.

Более комплексное решение в будущем может включать в себя исследование причин, приводящих к высокому потреблению памяти фоновым сервисом, и устранение этих причин.

Additional context

Asus Zenfone Max Pro M1 (ZB602KL), LineageOS 18.1 (Android 11)

[сообщения из архива]

Наверное, было бы неплохо, если бы сообщения, помещённые в архив, как минимум, не показывались в общем списке. А как максимум, можно было бы управлять архивом в приложении (просматривать список помещённых в архив диалогов, добавлять их туда и удалять оттуда).

F-Droid

День добрый.
Можно ли опубликовать приложение в репозиторий f-droid.org?
Основные условия для этого выполняются.

[IDEA] Доработать переход по ссылкам без текста

Суть
В случае, если у ссылки в аттаче нет заголовка, она отображается пустой и, что неприятно, при переходе возникает вопрос: "вы собираетесь открыть null. продолжить?"

Моё предложение

Не выношу в pull request, поскольку, вероятно, можно сделать получше

    private fun createLink(link: Link): View =
            ContainerLinkBinding.inflate(inflater).run {
                if(link.photo?.getSmallPhoto()?.url?.isNotEmpty() == true){
                    ivPhoto.load(link.photo?.getSmallPhoto()?.url)
                }else{
                    ivPhoto.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_worldwide))
                }
                tvTitle.text = if(link.title?.isNotEmpty() == true) link.title else context.getString(R.string.link)
                tvCaption.text = if(link.caption?.isNotEmpty() == true) link.caption else link.url
                root.setOnClickListener {
                    callback.onLinkClicked(link)
                }
                root
            }

Выборочное отключение уведомлений для чатов/диалогов

В оригинальном приложении есть возможность отключать уведомления в некоторых чатах, причем упоминания в этом чате уведомляются.
Хорошо бы добавить такой функционал в ваше приложение.
Как я понимаю это не функция сайта, а самого приложения, придется где-то локально хранить эти настройки.

[IDEA] Улучшить отображение больших текстовых комментариев при просмотре изображений в режиме галереи

Суть
Большой текстовый комментарий закрывает полностью картинку в аттаче при просмотре в режиме галереи

Предложение

  • Первый вариант: в activity_image_viewer.xml в TextView ("@+id/tvText") добавить android:maxLines="6"
  • Второй вариант (если хочется пролистывать текст):
  1. в activity_image_viewer.xml в TextView ("@+id/tvText") добавить android:maxHeight = "150sp" android:scrollbars = "vertical"
  2. в ImageViewerActivity добавить tvText.setMovementMethod(ScrollingMovementMethod())

[IDEA] Follow system theme

Describe the idea you'd like
Currently, theme can be chosen from light and dark. Many apps nowadays allow to follow system theme, so when system dark theme is enabled, the app is also in dark mode, and the same with light theme. Would be nice to see this feature in xvii.

[IDEA] emoji reactions

Describe the idea you'd like
show emoji reactions under your messages. react to other's messages

Describe alternatives you've considered
at least show the number of reactions

Additional context
emoji reactions are only one missing thing for now to complete messaging experience

Issues

Привет. Мессенджер классный, НО...

  1. При открытии профиля из диалога есть race condition. Нажимаешь дважды/трижды на аватарку -- придётся дважды/трижды жать "назад", чтобы вернуться.
  2. При открытии фото достаточно маленького размера иконка загрузки не исчезает за ним =)
    Screenshot_20200524-193452
  3. При смене аккаунта требуется перезапуск приложения. Это очень неудобно.
  4. При "перезапуске" не происходит запуска. Приложение просто закрывается.
  5. Анимация при закрытии фото свайпом вниз дизориентирует.
  6. Нужен haptic feedback при выборе сообщения для ответа свайпом. Очень.
  7. Было бы неплохо сделать haptic feedback при удалении вложения (в частности -- сообщения, на которое отвечаешь) долгим нажатием или сделать drag-to-remove, а также при старте и отмене записи голосового сообщения.
  8. [Пожелание] Стикеры. И проигрывание анимированных. И кнопочки в чат-ботах.
  9. Сделать бар прозрачным -- странное решение. Элементы под ним выглядят не очень.

small enhancements

хорошее приложение

было бы здорово, если бы еще было что-то такое

важное:

  1. добавить возможность включить всплывающие уведомления (их вроде бы нету)

  2. добавить возможность отправлять уведомления в "разговоры", как на втором скрине

  3. если открывать приложение нажатием на уведомление в списке запущенных приложений появляется его копия, и их со временем накапливается много >w> было бы хорошо, если бы она оставалась одна

остальное:

при прикреплении изображений иметь сортировку по папкам как в стандартной галерее, а не просто все картинки на одной странице

в меню настроек и во время прикрепления вложений к сообщению нижняя панель с кнопками становится прозрачной и кнопки плохо видно

помимо выбора светлой/темной темы, была бы возможность использовать тему, которая сейчас выбрана на устройстве

в настройках текст не помещается на кнопках

Авторизация по access_token

Привет! Предлагаю добавить возможность авторизации в приложении напрямую через access_token, а не только через логин и пароль через oauth.vk.com.

[BUG] Pinned dialogs don't work properly in case of multiple users

Описание
При переключении между авторизованными пользователями закреплённые сообщения перестают быть закрепленными. При включении оффлайн отображаются диалоги предыдущего пользователя

Причина
В бд. в таблице Dialogs не запоминается, для какого авторизованного пользователя отображены эти диалоги. Это приводит к тому, что если переключаться между аккаунтами, то закрепленные диалоги первого пользователя могут наследоваться у второго, а в оффлайн режиме, где сообщения берутся только из таблицы Dialogs, отображаются диалоги предыдущего пользователя.

Моё решение
Не делаю pull-request, поскольку не уверена, что решение удачное. Но другого я не придумала

  1. Dialogs. Добавляю поле "me"
@Parcelize
@Entity(tableName = "dialogs", primaryKeys = ["peerId","me"])
data class Dialog(
        val peerId: Int = 0,
       ......
        var me: Int = 0,
  1. DialogsDao:
    @Query("SELECT * FROM dialogs WHERE :me = me ORDER BY isPinned DESC, timeStamp DESC")
    fun getDialogs(me: Int): Single<List<Dialog>>

    @Query("SELECT * FROM dialogs WHERE :peerId = peerId AND :me = me")
    fun getDialogs(me: Int, peerId: Int): Single<Dialog>

    @Query("SELECT * FROM dialogs WHERE peerId IN (:peerIds) AND :me = me")
    fun getDialogs(me: Int, peerIds: List<Int>): Single<List<Dialog>>
  1. В коде в нескольких местах добавляется SessionProvider.userId. Например:
    fun loadAlias(peerId: Int) {
        appDb.dialogsDao()
                .getDialogs(SessionProvider.userId, peerId)

Небольшие проблемы

  1. При скачивании файла из диалога, не проверяется его наличие в файловой системе. Из-за этого предлагается его скачивать снова и снова. В оригинальном клиенте ВК предлагается его открыть, вместо повторной загрузки.

  2. В том же VK.me можно было нажать на человека и там была ссылка на профиль, которая открывалась в браузере. Было довольно удобно.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.